随笔分类 -  数论

hdu 2824 The Euler function
摘要:欧拉函数~~第一次写欧拉函数,以前只知道其定义,以为编码按其过程一步一步的实现应该就可以,结果发现不太一样。超时的想法:首先筛选素数,刚开始是筛选了N以内的所有素数,然后对于每个数,从小到大枚举素数,for(;;)//枚举素数if(n%prime[i]==0){ phj[n]=phj[n]-phj[n]/prime[i]; while(n%prime[i]==0){ n/=prime[i]; }}超时了之后,发现素数其实没必要枚举到N,只用枚举到sqrt(N)因为对于每一个数n,for()循环之后,如果n不为1,那n肯定是一个大于sqrt(N)的素数。但是这样之后还是超时了。。之后看了百科上面 阅读全文
posted @ 2012-09-20 16:20 奋斗青春 阅读(433) 评论(0) 推荐(0)
hdu 2815 Mod Tree pku 3243 Clever Y
摘要:扩展Baby Step Giant StepBaby Step Giant Step: A^X=B(mod C); C为素数。如果C没有限制就变成扩展Baby Step Giant Step。参照大牛博客:http://hi.baidu.com/aekdycoin/item/236937318413c680c2cf29d4实在是太弱了,没用二分,写了一个hash竟然超时,最后还是copy了一个hash。View Code 1 # include<stdio.h> 2 # include<string.h> 3 # include<stdlib.h> 4 # 阅读全文
posted @ 2012-09-20 16:14 奋斗青春 阅读(504) 评论(0) 推荐(0)
概率DP
摘要:hdu 4336 http://acm.hdu.edu.cn/showproblem.php?pid=4336比较简单的一道概率DP。一般概率DP都是从后向前推,对于这道题目,因为n不是很大, 所以可以用二进制,用一个数表示一种状态。1表示该卡片已经被搜集过,0表示还没有所以dp[2^n-1]的期望值为0dp[i]=dp[i]*sum + pi*dp[i+2^i] +1 ;sum表示这次bags里面没有卡片或者是已经搜集过的卡片的概率最后求出dp[0]即可。bupt 200 http://acm.bupt.edu.cn/onlinejudge/newoj/showProblem/show_pr 阅读全文
posted @ 2012-09-09 09:59 奋斗青春 阅读(351) 评论(0) 推荐(0)
hdu 2669 Romantic
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=2669扩展欧几里德。扩展欧几里德: 给一个线性方程X*a+Y*b=m,给出a,b,m让求解X和Y。首先,只有m%gcd(a,b)==0 时 该线性方程才有解。假使a=k1 *gcd(a,b),b=k2 * gcd(a,b);那么方程左边就等于(X*k1+Y*k2)*gcd(a,b),所以仅当m能被gcd(a,b)整除时方程才有解。为了求上述方程的解,我们不妨先来求方程a*X+b*Y=gcd(a,b)的解,设d=m/gcd(a,b);所以a*(d*X)+b*(d*y)=d*gcd(a,b)=m,求出这个方程的解 阅读全文
posted @ 2012-09-05 10:24 奋斗青春 阅读(1009) 评论(0) 推荐(0)
pku 2478 Farey Sequence 欧拉函数~~~
摘要:很经典的一道欧拉函数题;题意的主要意思就是: 给定一个n,让你求与n互质的数的个数,由于n比较大,一般的方法是行不通的,这时就用到了欧拉函数!欧拉函数:在数论中,对正整数n,欧拉函数是少于或等于n的数中与n互质的数的数目。例如φ(8)=4,因为1,3,5,7均和8互质。 从欧拉函数引伸出来在环论方面的事实和拉格朗日定理构成了欧拉定理的证明。φ函数的值通式: φ(x)=x(1-1/p1)(1-1/p2)(1-1/p3)(1-1/p4)…..(1-1/pn),其中p1, p2……pn为x的所有质因数,x是不为0的整数。φ(1)=1(唯一和1互质的数就是1本身)。 (注意:每种质因数只一个。比如12 阅读全文
posted @ 2011-07-23 20:54 奋斗青春 阅读(435) 评论(0) 推荐(0)
hdu 1130, 1133, 1250
摘要:今天下午做了一下午的大整数。。。都不是很难,只要找到了归规律,处理好大整数就可以AC了---1130 递推公式为f[i]=0;for(j=0;j<=i-1;j++){ f[i]+=f[j]*f[i-j-1];}用大整数转化一下就可以了。。1133:m个人拿50,n个人拿100 , 所以如果 n>m,那么排序方法数为 0 这一点很容易想清楚 现在我们假设 拿50的人用 ‘0’表示, 拿100的人用 1 表示。 如果有这么一个序列 0101101001001111.......... 当第K个位置出现1的个数多余0的个数时就是一个不合法序列了 假设m=4 n=3的一个序列是:01101 阅读全文
posted @ 2011-04-16 20:03 奋斗青春 阅读(522) 评论(0) 推荐(0)
斐波那契数列专题。。
摘要:斐波那契数列很容易理解,不过由它演变的题目很多。。。一般出的题目给的数据都很大,就是让你找规律。。。前两天校赛的时候出了一道题目。。 不死兔子。。参见zzuli-oj 1478题就是让求F(n)%m,然后n会很大,能达到10^8;这样的题目很明显的就是找循环节。。不过当时不知道是和前面的两三项进行比较, 以为还会和中间的相等(就是从中间开始循环), 写了一个双层for循环,直到最后,程序也没能运行出来。。后来听同学说只需要和前面2,3项进行判断就行, 至于为什么呢,我也无从得知。。。最后写了一层for循环,很容易的就找到了循环节,AC了。。。。还有一种类型的题目。。。Fibonacci。。。 阅读全文
posted @ 2011-04-13 13:22 奋斗青春 阅读(422) 评论(0) 推荐(0)
hdu 1271 整数对
摘要:假设A中去掉的数在第k+1位,可以把A分成三部分,低位,k,和高位。A == a + b * 10^k + c * 10^(k+1)B == a + c * 10^kN == A + B == 2 * a + b * 10^k + c * 10^k * 11其中b是一位数,b * 10^k不会进位,用10^k除N取整就可以得到b + 11c,再用11除,商和余数就分别是c和b了。但是这里有个问题a是一个小于10^k的数没错,但是2a有可能产生进位,这样就污染了刚才求出来的b + 11c。但是没有关系,因为进位最多为1,也就是b可能实际上是b+1,b本来最大是9,那现在即使是10,也不会影响到除 阅读全文
posted @ 2011-04-12 20:11 奋斗青春 阅读(1746) 评论(1) 推荐(1)
hdu 1717小数化分数2
摘要:这道题目搞的我晕死。。。昨天晚上就写好了代码,是推出来的,交了几次都是wa,最后也没发现有错误,今天上午又查了一下资料, 又写了一个代码,还是wa。。。最后很无奈的去和别人的代码对比,改了又改,马上改的就一摸一样的还是WA。。。。最后就把输入改成scanf(“%s”)了,(我原来用的gets()),神奇的AC了。。感觉很奇怪,对这道题而言,用scanf和gets都是一样的,为何gets就一直wa呢。。求解。。。这个是昨天晚上写的,,思路就是根据余数然后列出来很多个方程,最后化简就ok啦。。注释掉的部分就是错的地方。。。哪位大虾给解释下为什么呢?????# include<stdio.h& 阅读全文
posted @ 2011-04-12 10:44 奋斗青春 阅读(1819) 评论(0) 推荐(1)
幂取模 poj 1995
摘要:昨天上午看了一下关于幂取模的方法,当时对于书上所说的反复平方的方法不是很理解,下去后也忘了上网搜下了!今天晚上兴致大起,就上网搜了一个关于幂取模的方法(著名的RSA公钥的加密方法)!这种方法利用了一种分治的思想,达到了O(log(n))!对于形如a^b%c的式子:可以把b按二进制展开为b=p(n)*2^n+p(n-1)*2^(n-1)+...+p(1)*2+p(0) 其中p(i) (0<=i<=n)为0或1 这样a^b=a^(p(n)*2^n+p(n-1)*2^(n-1)+...+p(1)*2+p(0)) =a^(p(n)*2^n)*a^(p(n-1)*2^(n-1))*...*a 阅读全文
posted @ 2010-11-18 19:42 奋斗青春 阅读(667) 评论(0) 推荐(1)
新随笔-约瑟夫问题(pku 1012)
摘要:约瑟夫问题,我先查到了位置坐标公式:f[i]=(f[i-1]+m-1)%(n-i+1);然后看了discuss上《总结三点》帖子1.要kill的人的位置公式p=(p+m-1)%rest+12.kill的位置<k就break,此时剩下的人rest等于k就成功3.m不要递增,m是k+1的整数倍或者k+1的整数倍加1,这样会提高不少第三点不明白,就让m递增了,超时。后又查找第三点的原因,在ericxieforever的专栏找到了答案。另外这一题要把结果打表后再输出,不然还会超时。分析:先引入Joseph递推公式,设有n个人(0,...,n-1),数m,则第i轮出局的人为f(i)=(f(i-1) 阅读全文
posted @ 2010-07-13 21:33 奋斗青春 阅读(375) 评论(0) 推荐(0)