数论
菜鸟起航
这个作者很懒,什么都没留下…
展开
-
poj 2429 (分解质因子)
题意:给出两个数的最大公约数g,最小公倍数lcm,求出这两个数,有多种组合的,求出和最小的一组。思路:g=gca(a,b);a*b=lcm*g;a/g*b/g=lcm/g;gcd(a/g,b/g)=1;就是把lcm/g分解成两个互质的因子。可以用Pollard rho分解子因子,然后再将相同的因子合并,再将因子分成两部分。#include#includ原创 2013-10-23 14:51:32 · 1138 阅读 · 0 评论 -
hdu 2899 (数学+二分)
//函数在0——100,肯定是先递减后递增的,所以求导数为0的点,用二分#includedouble y;double F(double x){ return ((6*x+8)*x*x*x*x*x*x+7*x*x*x+5*x*x-y*x);}double f(double x){ return ((42*x+48)*x*x*x*x*x+21*x*x+10*x-y);}int原创 2013-08-15 21:40:20 · 745 阅读 · 0 评论 -
hdu 2502
昨天找出来的二进制数1出现的规律今天又遇到这样的题0位上每2个数后1个数有1,,即奇数1位上每4个数后2个有1,2位上每8个数后4个有1,.......。。。。。。。。。。。。。。#includeint a[21],b[21];int find(int n)//0到n共出现多少个1{ int i; n=n+1; int原创 2013-05-25 12:00:13 · 928 阅读 · 0 评论 -
2013 南京邀请赛 C - Count The Carries
题意是a+,,,,,+b,在二进制计算中有多少次进位,只要统计一下从a~b所有数位上1的和就可以了写了前十的二进制数,发现了规律,0位上每2个数后1个数有1,,即奇数1位上每4个数后2个有1,2位上每8个数后4个有1,.......。。。。。。。。。。。。。。#include#includeint numa[70],n原创 2013-05-24 18:23:53 · 1503 阅读 · 0 评论 -
hdu 1018
一:log10(n!)=log10(1*2*3…*n)=log10(1)+log10(2)+…+log10(n)二:n! = sqrt(2*π*n) * ((n/e)^n) * (1 +1/(12*n) + 1/(288*n*n) + O(1/n^3))π = acos(-1)=3.1415927;e = exp(1)=2.718281828459;两边对10取对数忽略log1原创 2013-05-24 13:30:15 · 729 阅读 · 0 评论 -
hdu 1576
设A=B*k1=k2*99973+n则B*k1-k2*9973=n因为gcd(B,9973)=1;用扩展欧几里得算法可以求出x1,x2使x1*b+x2*9973=1;n*x1*b+n*x2*9973=n;求(n*x1)%9973;因为求出的x1可能有负数,(n*k%9973+9973)%9973;#include#inc原创 2013-05-10 10:49:17 · 725 阅读 · 0 评论 -
hdu 2421
时间卡的真厉害,比赛五个小时都在优化求出A的质因子A^B=(a0^p0*a1^pq*……*an^pn)^B=a0^(B*p0)*……*an^(B*pn)aj^(B*pj)有B*pj+1个因子(aj^0,aj^1……aj^(B*pj)),因子aj^i的因子个数是i+1个;(1^3+2^3+……(B*pj+1)^3)所以M=(1^3+2^3+……(B*p0+1)^3)*(1^3+2^3原创 2013-05-09 19:44:02 · 1047 阅读 · 0 评论 -
hdu 1999
数据有问题,s(8)=7,s(28)=28,如果这两个数是不可摸数的程序也ac直接暴力打表#include#include#includeint mark[1002];int main(){ int i,j,k,t,n,temp; memset(mark,0,sizeof(mark)); for(i=2;i<500000;i++) {原创 2013-05-09 11:02:09 · 723 阅读 · 0 评论 -
hdu 2824
当数越来越大时欧拉函数很大,与因子数差距越来越大,所以当n达到一定值时就找不到相等的区间了暴力模拟了前500,30以后都是10 #includeint main(){ int a[31]={0,1,1,2,2,4,5,5,6,6,7,7,7,7,7,7,7,7,8,8,8,8,8,8,9,9,9,9,9,9,10}; int n,t,op=原创 2013-05-06 19:39:30 · 843 阅读 · 1 评论 -
hdu 1792 A New Change Problem
题意:给定A和B,A和B互质,求最大不能组合数,和不能组合数的个数。基础知识:Gcd(A, B) = 1 → Lcm(A, B) = AB剩余类,把所有整数划分成m个等价类,每个等价类由相互同余的整数组成任何数分成m个剩余类,分别为 mk,mk+1,mk+2,……,mk+(m-1)分别记为{0(mod m)},{1(mod m)}……而n的倍数肯定分布在这m个剩余类原创 2013-05-06 08:00:31 · 1245 阅读 · 0 评论 -
hdu 2133 What day is it
处理日期计算天数时,0001年1月1日,是366天,要减去前边算的0年的365天 #includeint days[12]={31,28,31,30,31,30,31,31,30,31,30,31};char s[7][10]={"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday原创 2013-04-25 11:15:56 · 716 阅读 · 0 评论 -
poj 3641&hdu 1905(伪素数判定)
题意:给出p,a问p是不是以a为底的伪素数,如果p不是素数判断,是否a^p%p==a#include #include #include #include #include #include #include typedef __int64 LL; LL a,b,sum; const int S原创 2013-10-23 19:31:10 · 980 阅读 · 0 评论