数论
文章平均质量分 63
NowAndForever
这个作者很懒,什么都没留下…
展开
-
HUNNU Contest 区间求最值
区间求最值Time Limit: 3000ms, Special Time Limit:7500ms, Memory Limit:32768KBTotal submit users: 68, Accepted users: 45Problem 11460 : No special judgementProblem description原创 2014-06-09 20:48:01 · 852 阅读 · 0 评论 -
51nod--1138 . 连续整数的和
http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1138给定一个正整数M,将M分解成若干个连续自然数和的形式。一个数M若可以写成以a开头的连续n个自然数之和,则M=a+(a+1)+(a+2)+(a+3)+...(a+n-1) = na+n*(n-1)/2; 得出a=(M-n*(n-1)/2)/n; 因为a是正整原创 2014-10-21 19:13:58 · 1556 阅读 · 0 评论 -
51-nod -1284 2 3 5 7的倍数
1284 . 2 3 5 7的倍数基准时间限制:1 秒 空间限制:65536 KB 分值: 5给出一个数N,求1至N中,有多少个数不是2 3 5 7的倍数。 例如N = 10,只有1不是2 3 5 7的倍数。Input输入1个数N(1 Output输出不是2 3 5 7的倍数的数共有多少。Input 示例 10Output 示例1由于n很大,原创 2014-10-14 15:05:53 · 1361 阅读 · 0 评论 -
51nod-1087 . 1 10 100 1000
http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1087原创 2014-10-15 22:55:35 · 1006 阅读 · 0 评论 -
51-nod 1003 . 阶乘后面0的数量
1003 . 阶乘后面0的数量基准时间限制:1 秒 空间限制:65536 KB 分值: 5n的阶乘后面有多少个0?6的阶乘 = 1*2*3*4*5*6 = 720,720后面有1个0。Input一个数N(1 Output输出0的数量Input 示例5Output 示例1 编程之美有讲:一个数 n 的阶乘末尾有多少个 0 取原创 2014-10-16 20:04:06 · 1998 阅读 · 0 评论 -
N的阶乘的长度(斯特林公式)
求一个数x的位数,用log10(x)+1即可。斯特林公式 n!=sqrt(2*pi*n)*(n/e)^n , 那么 n的阶乘位数 = log10 (sqrt(2*pi*n)*(n/e)^n) +1 =0.5* log10 (2*pi*n)+n*log10(n/e) +1 ;#include #include #define PI acos(-1.0)#define e 2.718原创 2014-11-30 18:39:24 · 2045 阅读 · 0 评论 -
求n的阶乘的精确值
斯特林公式可以求出n!的近似值,但是如果需要求精确值的话,就要采取另外的办法了。‘当n#include#include#define N 3000int f[N];//保存阶乘的位数int main(){ int n,i,j,c; while(~scanf("%d",&n)) { memset(f,0,sizeof(f));原创 2014-12-01 17:22:34 · 3381 阅读 · 0 评论 -
UVA - 575 Skew Binary
http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=19086水题,就是把一个斜二进制数转化成十进制数。#include#include#includeusing namespace std;int main(){ //freopen("a.txt","r",stdin); char s[100]原创 2014-12-18 10:40:20 · 508 阅读 · 0 评论 -
UVA - 10110 Light, more light
http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=19087看懂题目就好做了,题目意思是有n个灯泡编号1-n,有一个人总共从起点走n次,第i次按下被i整除灯泡开关,问最后编号为n的开关是亮还是暗,初始灯泡全部为暗。因为n很大,不能直接模拟,但是可以发现只要n是完全平方数,就只存在一个单独因子,这样操作完之后就必然为亮,所原创 2014-12-18 13:18:05 · 366 阅读 · 0 评论 -
UVA - 550 Multiplying by Rotation
http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=19088给定一个数的进制k,和第一个乘数的最低位n,和第二个乘数m,求原数的最小长度。乘法规律:xxxx7 × 4= 7xxxxx. 首先n是原数的最低位,那么n*m%k就是原数的倒数第二位,也就是后一个数的最后一位,那么依次类推,可以把后一个数全部推出来,直到乘数原创 2014-12-18 14:58:14 · 402 阅读 · 0 评论 -
UVA - 10392 Factoring Large Numbers(素数打表)
http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=19089给你一个long long类型的数,把这个数分解成质数相乘的形式。首先把素数打表,然后求就可以了。#include#include#includeconst int maxn=1000001;typedef long long ll;bool vi原创 2014-12-18 18:43:12 · 423 阅读 · 0 评论 -
UVA - 10879 Code Refactoring
http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=19094一道 特判题,求n的四个不一样的因子。#includevoid solve(int n){ int i,ans=0; for(i=2;i*i<=n;i++) { if(n%i==0) {原创 2014-12-19 14:11:28 · 391 阅读 · 0 评论 -
UVA - 350 Pseudo-Random Numbers
http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=19091给你一个产生随机数的式子,求循环节。#include#includeconst int maxn = 1000000;int f[maxn],s[maxn];int main(){ //freopen("a.txt","r",stdin);原创 2014-12-19 14:41:33 · 374 阅读 · 0 评论 -
CSU_1410: 整数转换
Description我们可以通过对一个整数A进行加1操作或者乘2操作使其转换为另一个整数B。给出两个整数X,Y,计算至少需要多少步才能将X转换为Y。.Input输入的第一行包含一个整数T (1≤ T ≤ 500),表示一共有T组测试数据。每组测试数据占一行,包含两个整数X,Y (1≤ X ≤ Y ≤ 1018)。Ou原创 2014-09-03 17:14:14 · 1039 阅读 · 0 评论 -
xtu-1140 Anti-Goldbach's Conjecture
http://202.197.224.59/OnlineJudge2/index.php/Problem/read/id/1140原创 2014-09-01 16:43:28 · 540 阅读 · 0 评论 -
简单数论问题
简单数论问题Time Limit : 3000/1000ms (Java/Other) Memory Limit : 65535/32768K (Java/Other)Total Submission(s) : 15 Accepted Submission(s) : 5Font: Times New Roman | Verdana | GeorgiaFont Size: ← →原创 2014-07-22 13:23:53 · 904 阅读 · 0 评论 -
hdu-1395 2^x mod n = 1
2^x mod n = 1Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 11542 Accepted Submission(s): 3577Problem DescriptionGive a number n, find原创 2014-07-22 13:44:39 · 812 阅读 · 0 评论 -
卖票--卡特兰数的运用
卖票Time Limit : 3000/1000ms (Java/Other) Memory Limit : 65535/32768K (Java/Other)Total Submission(s) : 8 Accepted Submission(s) : 6Font: Times New Roman | Verdana | GeorgiaFont Size: ← →P原创 2014-07-29 16:41:23 · 530 阅读 · 0 评论 -
循环小数
循环小数Time Limit : 3000/1000ms (Java/Other) Memory Limit : 65535/32768K (Java/Other)Total Submission(s) : 15 Accepted Submission(s) : 4Font: Times New Roman | Verdana | GeorgiaFont Size: ← →Pr原创 2014-08-21 23:13:46 · 571 阅读 · 0 评论 -
hdu-1568 Fibonacci
http://acm.hdu.edu.cn/showproblem.php?pid=1568原创 2014-05-27 20:50:27 · 406 阅读 · 0 评论 -
Elegant fibonacci numbers again
Elegant fibonacci numbers againTime Limit : 3000/1000ms (Java/Other) Memory Limit : 65535/32768K (Java/Other)Total Submission(s) : 15 Accepted Submission(s) : 3Font: Times New Roman | Verdan原创 2014-05-26 19:18:23 · 487 阅读 · 0 评论 -
标准Fibonacci序列
[定理1] 标准Fibonacci序列(即第0项为0,第1项为1的序列)当N大于1时,一定有f(N)和f(N-1)互质其实,结合“互质”的定义,和一个很经典的算法就可以轻松证明对,就是辗转相除法互质的定义就是最大公约数为1数学归纳法是很有用的证明方法,我们接下来这个定理用数学归纳法就很好证明:[定理2]若i为奇数, f(i)*f(i)=f(i-1)*f(i+1)+1,否则f(i转载 2014-05-26 20:32:20 · 1023 阅读 · 0 评论 -
hdu-3117 Fibonacci Numbers
题目意思很简单,给定一个K(K很大很大),请你输出第K个Fibonacci数的前四位和后四位。针对后四位,很容易我们就想到了一个O(K)的算法,即利用公式F[i]=(F[i-1]+F[i-2]) mod 10000来递推。可是K很大很大,所以O(K)的算法无法满足需要。这时我们可以构造一个矩阵A,使得 F[i] F[i+1] 乘以A得到F[i+1] F[i+2],由于矩阵乘法满足交换律结合转载 2014-05-27 19:25:10 · 392 阅读 · 0 评论 -
hdu-1021 Fibonacci Again
http://acm.hdu.edu.cn/showproblem.php?pid=1021原创 2014-05-27 22:37:43 · 380 阅读 · 0 评论 -
hdu-1558 Gauss Fibonacci
/*求f(ki+b) 0 求斐波那契构造矩阵A[2][2]={1,1,1,0} f(n)=A^n 所以根据题意有f(b)=A^b 注意 f(k+b)=A^(k+b)=A^k*A^b f(k+b)=A^(k+b) …… f((n-1)k+b)=A^((n-1)k+原创 2014-05-28 22:38:31 · 620 阅读 · 0 评论 -
hdu-2588 GCD
http://acm.hdu.edu.cn/showproblem.php?pid=2588题意:输入 N 和 M (2 找出所有的X满足1=M.此题数据量很大,用常规方法肯定超时思路:首先,求出N的所有约数g[],然后枚举那些 >=M 的公约数g[i], 结果为 所有 n/g[i] 的欧拉函数的值的和解释:若x>=M,且x是N的约数原创 2014-08-27 15:19:14 · 1516 阅读 · 0 评论 -
数论-模板
1.扩展的欧几里德定理[cpp] view plaincopyprint?//拓展欧几里得定理,求ax+by=gcd(a,b)的一组解(x,y),d=gcd(a,b)void gcd(int a,int b,int &d,int &x,int &y) { if(!b){d=a;x=1;y=0;} else{gcd(b,a%b,d,y,x);y-=x*(a/b转载 2014-08-26 21:31:04 · 681 阅读 · 0 评论 -
UVA - 408 Uniform Generator
http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=19090以前就做过这题,当时也是用枚举的,但是还是因为格式错了几次。#include#include#define maxn 10000001char f[maxn];int main(){ int n,m,sum,x,y; while(~sc原创 2014-12-19 15:49:56 · 481 阅读 · 0 评论