ChenKunn的博客

天道酬勤

二进制算法-GCD

其实所谓的二进制算法: 通过不断去除因子2来降低常数。 <1> x == y -------> GCD(x, y) = x; <2> x != y (1) x,y均为偶数,则GCD(x,y) = 2 * G...

2019-04-10 11:25:36

阅读数 12

评论数 0

CodeForces 1092 div3 F:Tree with Maximum Cost

题目大意: 给定一棵有n个节点的树,给定每个点的点权,每个边的边权是1。你可以任选一个点作为V点,使得dist(i,j) * a[i]最大。

2018-12-19 19:41:04

阅读数 82

评论数 0

CodeForces1093D:Beautiful Graph(二分图判定+方案数)

每个点可以赋(1, 2, 3)中的任意一个数,但是必须保证相邻点相加为奇数,所以必定一个奇数挨着一个偶数。 由此联系到染色问题,奇环肯定无法染色。 只要图内任意一个联通块无法染色,则需要输出0。 我们进行一遍染色后得到赋值成奇数的点的个数和赋值成偶数点的个数。 则此联通块内的方案数即2^(...

2018-12-18 12:53:44

阅读数 100

评论数 0

求逆元

若a * x  1 (mod b), a, b互质,则称x为a的逆元, 逆元也可以写成。 (t/a) mod b = t * x mod b. 求逆元的方法: 1.EXGCD     a *  x  1 (mod b)   ——> a * x + b * y = 1。...

2018-11-19 23:01:10

阅读数 19

评论数 0

同余与同余方程(扩展欧几里得)

同余应该是数论中比较基础的一个东西了。感觉挺重要的。。。高中没学好到大学来补了。 涉及3个数,a,b,m。就是a % m == b % m. 可以写成:a  b(mod m)。 一、同余及其一些性质 同余有一些显然性质,有的时候会有很大功效。(不列举了,一般书上都有的)。 例1:给定整数...

2018-11-13 19:40:58

阅读数 67

评论数 0

KMP算法

一开始感觉KMP算法非常难,但是其实多搜一些资料仔细研究一下发现其实。。 其实还是学习方法的问题吧,学的太潦草,不深入,仔细钻研,发现其实并不是那么难。 KMP算法是字符串匹配算法。 给定两个字符串a,b。统计串b在a中出现的位置与次数。 a= bacbababadababacambaba...

2018-11-11 16:48:30

阅读数 19

评论数 0

欧拉函数与欧拉降幂

1.欧拉函数:小于或等于n且与n互素的正整数个数,称为欧拉函数。 2.若n的质因数为p1,p2,p3,,,,,pn,则欧拉函数f(n)可以表示为f(n)=n*(1-1/p1)*(1-1/p2)*(1-1/p3)*.....(1-1/pn). 3.如果p是一个素数,n是正整数,则f()=-. ...

2018-11-06 19:36:10

阅读数 204

评论数 0

HDU6300Triangle Partition

给定3n个点,保证3点不共线,构造n个三角形,输出任一方案。 以x为第一关键字,y为第二关键字排序。然后3个3个的取就OK。 #include<cstdio> #include<algorithm> us...

2018-11-02 14:49:23

阅读数 17

评论数 0

HDU6298Maximum Multiple

给定一个数n,用n的3个因子相加等于n,并且乘积最大。 打表找规律。 当n%3==0时,乘积=n*n*n/27; 当n%4==0时,乘积=n/4*n/4*n/2=n*n*n/32; 其它均为-1. #include<cstdio> #incl...

2018-11-02 14:31:14

阅读数 25

评论数 0

HDU6124 Euler theorem

已知a,求a的余数的种类数。 从a-1/2 + 1开始到a,都是a的余数,共(a - 1) / 2 + 1种。 再加上0这一种。 所以ans = (a-1)/2 + 2; #include<cstdio> #include&lt...

2018-11-02 14:15:37

阅读数 28

评论数 0

HDU - 6201:transaction transaction transaction

大意:树上的点可以买卖,从任意一点买入,再从任意一点卖出。求最大差价。 算法1:最长路。              新构建两个点,作为源点S和汇点T,这里可以另S=0,T=N+1。然后把1-N中的每一个点与S建立一条边,边权为-w[i](点权),代表买入。再把1-N中的每一个点与T建立一条边,...

2018-11-02 14:04:05

阅读数 18

评论数 0

POJ3046 Ant Counting

有T种蚂蚁,编号为1-T。每一种蚂蚁有Ni只蚂蚁。现在从蚂蚁中取出一些只组成大小分别为S....B的集合。问方法总数。 解法:计数Dp中的多重集组合数问题。  模板题。只是统计取出S..B个的方法总数。最后做个相加即可。 但是需要计算数据范围蚂蚁总共有1000*100只。在dp中用到滚动数组...

2018-10-24 20:17:36

阅读数 37

评论数 0

POJ 3252 Fence Repair

把一个木板切割成N块,每次切割的花费是原木板的长度。N块木板的长度给出,求最小花费。 这个题需要反过来看。最小和次小的两块木板是最后被切的。。每次都把最小和次小取出,加入ans,然后把两者相加放入堆中。 需要注意的是数据的大小用long long, 因为STL默认大根堆,在把数据插入堆中的时候...

2018-10-24 19:31:21

阅读数 39

评论数 0

POJ 3069 Saruman‘s Army

直线上有一些点,每个点距离为R的范围内必须有带有标记的点。需要标记最少的点来实现。 解法:贪心 显然,我们应该从最左边的点开始标记,然后选择一个在本次标记点覆盖范围外的第一个点。 #include<cstdio> #include&amp...

2018-10-24 19:24:50

阅读数 70

评论数 0

POJ 3617 Best Cow Line

让我们每次从头和尾取字母,然后重组成字典序最小的字符串。 解法:贪心。     不断地从开头或结尾取最小的放到新字符串的末位。但是我们还得处理一种开头和末尾相同的情况,我们必须保证尽早取到最小的。所以我们可以用两个指针分别从开头和末尾逐位比较。那边先出现较小的,就先取那边的。 #inclu...

2018-10-24 19:19:46

阅读数 40

评论数 0

计数DP

Dp不仅对于求解最优解问题有效,还可以用来求解各种排列组合的个数、概率或者期望之类的计算。 一、划分数:           有n个毫无区别的物品,将它们划分成不超过m组,求划分方法数模M的余数。    例如有4个物品,将它们分成3组,则有4种情况:1+1+2,1+3,2+2,4。这样的划分...

2018-10-24 16:54:11

阅读数 103

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭