数论
文章平均质量分 62
zhangwei1120112119
这个作者很懒,什么都没留下…
展开
-
poj3358 Period of an Infinite Binary Expansion
题意:输入一个有理数p/q(保证是一个小数),然后将其小数部分用二进制表示。求出在此种表示下的循环起点和循环节长度比如1/10,化为二进制就是0.000110011起点就是小数点后第二位,循环节是0011,长度为4解法:比如1/10,用乘二法,2/10,4/10,8/10,6/10,2/10其中1*2^1=1*2^5(mod10)用p代表分子,q代表分母,i代表一个原创 2013-01-07 17:32:35 · 378 阅读 · 0 评论 -
HDU4503 湫湫系列故事——植树节
中文题。姑且放在数论类里吧有n个孩子每个孩子有 b[i]个朋友 自然有 n-1-b[i]个非朋友 他自己,他的一个朋友,他的一个非朋友构成的组合是不满足题意的 但是除此之外的所有组合都满足题意故可以通过计算不满足的组合对每个孩子有b[i]*(n-1-b[i])个组合,这个组合累加会被他的朋友再计算一次,所以结果除以2就是不满足的组合数总的组合是C(原创 2013-03-22 11:08:24 · 1174 阅读 · 0 评论 -
HDU1061 Rightmost Digit
题意:求N^N的最右位数字快速幂解决#include#includeusing namespace std;int main(){ int total; scanf("%d",&total); while(total--) { int n; scanf("%d",&n); int m=n;//n^m int ans=1; n%=10; while原创 2013-04-04 18:57:11 · 502 阅读 · 0 评论 -
BIT1057 Sum
题意:给一个n,求少于或等于n的数中与n不互质的数的和我们先求少于或等于n的数中与n互质的数的和对于i与n互素gcd(n,i)=1必有gcd(n,n-i)=1设n的欧拉函数值为f[n]则有f[n]个数与n互素,这些数两两相加必等于n于是有答案为f[n]*n/2#include#include#include#define MOD 10000原创 2013-02-04 11:56:19 · 425 阅读 · 0 评论 -
BIT1055 The Euler function
题意:给a和b,求f[a]+f[a+1]+....f[b]f为对应的欧拉函数值解法:线性筛法,因为欧拉函数是积性函数可用筛法计算欧拉函数值若p ∤ i,ϕ(p*i)=(p-1)*ϕ(i)若p|i, ϕ(p*i)=p*ϕ(i)根据以上两个式子将1到10^6内所有数的欧拉函数值通过筛法算出来然后用ans数组代表ans[i]=f[1]+f[2]+...f[原创 2013-02-04 11:02:44 · 329 阅读 · 0 评论 -
BIT1047 Fibonacci Numbers
题意:求斐波那契数列的第n项(n多组样例,每一行一个样例,有两个数n和p斐波那契有以下性质所以原问题转变为求矩阵的n-1次幂用快速幂求解#include#include#includeusing namespace std;class Matrix//矩阵{public: long long a,b;//第一行 long long c,d;//第二行原创 2013-02-03 11:23:56 · 366 阅读 · 0 评论 -
BIT1054 Largest prime factor
题意:在素数表中2的位置上1,3的位置是2,5的位置上3给一个数,问他的最大素数因子在素数表中的什么位置开始用素数筛选出来后试除果断TLE了。。。改一下素数筛选素数筛选的过程中,定义一个数组,初始代表所有的数都为素数然后一个一个筛掉这里改了一下筛法,代码中讲解#include#include#includeusing namespace std;#def原创 2013-02-03 18:51:32 · 357 阅读 · 0 评论 -
BIT1048 n以内约数最多的数
题意:做题时参考了http://hi.baidu.com/shuxk/item/c2b981436bfe7adac0a59213求[1,n]中约数最多的数n对于一个大于1正整数n可以分解质因数:n=p1^a1*p2^a2*p3^a3*…*pk^ak,则n的正约数的个数就是(a1+1)(a2+1)(a3+1)…(ak+1) .那么对于这题,可以用质数连乘解决取15个质数2原创 2013-02-03 14:36:56 · 2053 阅读 · 0 评论 -
BIT1052 poj1061 青蛙的约会
拿了以前在pojAC的代码一交,WA了。。。重写了、根据题意有p+m*k=q+n*k (mod L)化简p-q+(m-n)k=(k')*L再化简(m-n)*k+k'*(-L)=q-p另a=m-n,b=-La*k+b*k'=q-p这就可以用扩展欧几里德了#include #includeusing namespace std;long原创 2013-02-03 17:13:13 · 595 阅读 · 0 评论 -
BIT1049 Relatives
给一个n,当n为0时停止输入赤裸裸地求欧拉函数值。。。。。#include#include#includeusing namespace std;long long euler(long long n)//求n的欧拉函数 { long long ans=1,i; for(i=2;i*i<=n;i++) if (n%i==0)原创 2013-02-03 15:02:21 · 550 阅读 · 0 评论 -
BIT1046 Leftmost Digit
题意,给一个n(求n!的最高位数字比如3!=6 最高位就是6解法:lgn!=lg1+lg2+....+lgn=temp这里如果用O(n)的累加算lgn!就会因为样例数可能达到1000个10^7*10^3>10^8而超时有斯特林公式lgn!=log10(sqrt(2*PI*n*1.0))+n*log10(n*1.0/e)算出lgn!后,比如对于n=5原创 2013-02-02 18:00:49 · 619 阅读 · 0 评论 -
FOJ1076 BIT1005 穿越沙漠
这题一开始想不出来,后来看解题报告说普车在沙漠中建临时油库,是逐步向前推进的,即建好一个油库后,再建下一个油库就懂了_(:з」∠)_设从A点到达B点的路中建立了n个油库,从A到B依次编号为Cn,Cn-1,,,,,,,C1显然C1建立的时候是500升油设在建立Ci(最后有V1升油的时候)的过程中,用了C(i+1)的 V2升油,车子一开始装了0升油,车子往返了k次(k显然为奇数,一原创 2013-01-14 17:07:15 · 782 阅读 · 0 评论 -
lucas定理
搜索引擎很难搜到这个定理啊。。。好不容易在别人博客里看到解释,摘抄一下原作者:http://blog.csdn.net/julyana_lin/article/details/7840491lucas定理:A、B是非负整数,p是质数。AB写成p进制:A=a[n]a[n-1]...a[0],B=b[n]b[n-1]...b[0]。则组合数C(A,B)与C(转载 2013-07-16 21:12:42 · 541 阅读 · 0 评论