hdu 5514 Frogs 2015沈阳区域赛

Frog

思路分析:

对于0~m-1的任何一个台阶t,如果能够被青蛙占领利用ext_gcd可以很快得出分析⇒存在k有k*gcd(ai,m)=t;

大神们的多种思路求解:
1.容斥原理+dfs剪枝
2.容斥原理+质因数分解
3.欧拉函数

学到的知识点
1.如何判断数据范围1e9中数约数最多多少个?
先考虑logN/log2 的结果,然后手动质因数拆分判断会涉及到多少个素数。
参考网址:自然数因数个数判断
这个的到结果在 1e4内,所以O(n^2)的算法是可以的。
2.如果gcd(a,m)=1那么gcd(m-a,a)=1
对应其中之一的解法 0~n与n互素的元素的求和为 sum=phi[n]*n/2

你可能感兴趣的:(hdu 5514 Frogs 2015沈阳区域赛)