Number Theory
文章平均质量分 77
huangshenno1
这个作者很懒,什么都没留下…
展开
-
POJ2635 The Embarrassed Cryptographer
一道高精度取模的简单题,有几个要注意的地方: 1.不要用10进制存数,会TLE 2.如果用10000进制或以上的存数,注意用long long,否则因为除数 我用的1000进制,代码如下。 #include #include int l,n,r,st,lim; int num[105]; char str[105]; int prime[80000],cnt; bool原创 2013-04-03 13:17:33 · 472 阅读 · 0 评论 -
SOJ4275 Question
乍一看很简单,求卡特兰数的模,但是(1 (1)用卡特兰数的递推公式 h(n)=h(n-1)*(4*n-2)/(n+1) ,但是除以(n+1)在模m的情况下无法计算(用逆元似乎也不能算出来),因此采用方法2. (2)用卡特兰数的组合数公式 h(n)=C(2n,n)/(n+1) ,同样的问题,除以(n+1)不好算,所以只能直接对C(2n,n)的所有项分解质因数 当然不能直接裸暴力枚举所原创 2013-04-22 18:33:26 · 478 阅读 · 0 评论 -
SPOJ1440 Use of Function Arctan
终于见到什么是真正的数学题了!我的数学竞赛之魂又燃了起来! 原等式为: arctan(1/A) = arctan(1/B)+arctan(1/C) 设arctan(1/B)=b,arctan(1/C)=c,对等式两边同时取tan并化简: 1/A = tan(b+c) 1/A = (tanb+tanc)/(1-tanb*tanc) 1/A = (1/B+1/C)/(1-1原创 2013-06-08 18:06:49 · 714 阅读 · 2 评论 -
SPOJ3899 Finding Fractions
这题的解法有一点连分数的味道,但是其实不用知道那个也可以,就是递归嘛。 dfs函数表示已知a/b 令k=a/b的整数部分,将三个分数都减去k,具体表现为分子都减去分母乘k,得到新的a' p' c',且a'/b 若c'/d > 1,则说明a'/b 否则可用dfs(d,c,b,a)求出p',再通过q=p'* d/c +1求得q (其实是p=q*(a/b)+1,下面也是这么求的)原创 2013-06-08 23:52:19 · 596 阅读 · 0 评论 -
POJ3243 Clever Y
对于任意正整数x,z,p,求满足x ^ y = z (mod p) 的最小的y 对Babystep_Giantstep算法的扩展 详细证明请参考http://blog.csdn.net/tsaid/article/details/7354716 #include #include #include using namespace std; typedef long long l原创 2013-07-26 14:57:48 · 543 阅读 · 0 评论 -
ZOJ3435 Ideal Puzzle Bobble
mobius反演的入门题。 首先,先抄一遍mobius反演: 已知 f(n) = sigma(d|n, g(d)) 那么 g(n) = sigma(d|n, mu(d)*f(n/d)) mobius反演的另一种形式: 在某一范围内,已知 f(n) = sigma(n|d, g(d)) 那么 g(n) = sigma(n|d, mu(d)*f(d/n)) 本题的难度其实原创 2013-08-04 23:39:59 · 842 阅读 · 0 评论 -
HDU4675 GCD of Sequence
设g(n)为最大公约数等于n的方案数(即本题答案),f(d)为公约数含有d的方案数。 则有关系:f(d) = sigma(d|n, g(n)) 本题关键即在于如何求f(d)。 如果没有(恰好K个数与序列a中不同)这个条件的话,那么函数f(d)就很好求,f(d) = [M/d] ^ N 但是本题有这个条件(废话),所以我们需要对函数f的求法做一点改进。 先用O(n sqrt n)的原创 2013-08-14 01:12:35 · 730 阅读 · 0 评论