摘要: 不再爱你……时间限制:1000 ms | 内存限制:65535 KB难度:3描述现在有一个圆柱形水杯,里面装满了水,在它的底部有一个小洞,通过一些简单的物理知识我们可以知道:1、由于重力的原因,水一定会从小洞流出来。2、小洞漏水的速度是和小洞那个位置的水所受到的压力大小成正比的。进而,我们可以知道,漏水的速度V和水面的的高度h成正比,简单起见,我们就直接让v=h吧(只是数值上的相等,v我们认为是单位时间漏出的水的体积,与小孔的大小无关,物理好的童鞋就不要深究了^_^)。3、如果你非常喜欢一个人,理论上在水漏完之前你一定不再喜欢TA了。好吧,扯远了,我们现在的问题是,如果原来倒入了高度为h的水, 阅读全文
posted @ 2013-08-29 09:24 王莜轩 阅读(172) 评论(0) 推荐(0) 编辑
摘要: p次方求和时间限制:1000 ms | 内存限制:65535 KB难度:3描述一个很简单的问题,求1^p+2^p+3^p+……+n^p的和。输入第一行单独一个数字t表示测试数据组数。接下来会有t行数字,每行包括两个数字n,p, 输入保证0int chifang(int m,int q){ int j1=1,j2=m; while(q) { if(q&1) j1=j1*j2%10003; j2=(j2*j2)%10003; q>>=1; } return j1;}int main(){ int t; scanf("%d",&t); while(t- 阅读全文
posted @ 2013-08-29 08:42 王莜轩 阅读(264) 评论(0) 推荐(0) 编辑
摘要: Binary String Matching时间限制:3000 ms | 内存限制:65535 KB难度:3描述Given two strings A and B, whose alphabet consist only ‘0’ and ‘1’. Your task is only to tell how many times does A appear as a substring of B? For example, the text string B is ‘1001110110’ while the pattern string A is ‘11’, you should output 阅读全文
posted @ 2013-08-22 17:49 王莜轩 阅读(175) 评论(0) 推荐(0) 编辑
摘要: 蚂蚁的难题(一)时间限制:1000 ms | 内存限制:65535 KB难度:2描述小蚂蚁童鞋最近迷上了位运算,他感觉位运算非常神奇。不过他最近遇到了一个难题:给定一个区间[a,b],在区间里寻找两个数x和y,使得x异或y最大。来,帮帮他吧!输入有多组测试数据(以EOF结尾)。每组数据输入两个数a,b.(0 int main() { long long a; long long b; while(scanf("%lld %lld",&a,&b)!=EOF) { int count = 0; long long cj=... 阅读全文
posted @ 2013-08-21 10:41 王莜轩 阅读(414) 评论(0) 推荐(0) 编辑
摘要: 快速查找素数时间限制:1000 ms | 内存限制:65535 KB难度:3描述现在给你一个正整数N,要你快速的找出在2.....N这些数里面所有的素数。输入给出一个正整数数N(N#includeint main(){ int a[2000001]; int i,j,m; memset(a,0,sizeof(a)); for(i=2;i<=1000000;i++) { if(a[i]!=1) { for(j=i+i;j<=2000000;j+=i) a[j]=1; ... 阅读全文
posted @ 2013-08-20 21:43 王莜轩 阅读(200) 评论(0) 推荐(0) 编辑
摘要: 我排第几个时间限制:1000 ms | 内存限制:65535 KB难度:3描述现在有"abcdefghijkl”12个字符,将其所有的排列中按字典序排列,给出任意一种排列,说出这个排列在所有的排列中是第几小的?输入第一行有一个整数n(0#includeint fun(int k){ int i,jie=1; for(i=1;ia[j]) m++; } sum+=(a[i]-'a'-m)*count; } printf("%d\n",sum); } return 0;} 此题其实就是排列问题,所以用到阶乘。注意阶乘是12-1-i;为什么会有-1呢?因 阅读全文
posted @ 2013-08-20 19:51 王莜轩 阅读(159) 评论(0) 推荐(0) 编辑
摘要: 求余数时间限制:1000 ms | 内存限制:65535 KB难度:3描述现在给你一个自然数n,它的位数小于等于一百万,现在你要做的就是求出这个数除10003之后的余数输入第一行有一个整数m(1#includeint main(){ int n; scanf("%d",&n); while(n--) { int len,i,count=0; char a[1000010]; memset(a,0,sizeof(a)); scanf("%s",a); len=strlen(a); for(i=0;i<len;i++) count=(count 阅读全文
posted @ 2013-08-20 18:12 王莜轩 阅读(257) 评论(0) 推荐(0) 编辑
摘要: 九的余数时间限制:3000 ms | 内存限制:65535 KB难度:3描述现在给你一个自然数n,它的位数小于等于一百万,现在你要做的就是求出这个数整除九之后的余数。输入第一行有一个整数m(1#includeint main(){ int n; scanf("%d",&n); while(n--) { int len,i,count=0; char a[1000010]; memset(a,0,sizeof(a)); scanf("%s",a); len=strlen(a); for(i=0;i<len;i++) count+=(a[i]- 阅读全文
posted @ 2013-08-20 17:56 王莜轩 阅读(264) 评论(0) 推荐(0) 编辑
摘要: 次方求模时间限制:1000 ms | 内存限制:65535 KB难度:3描述求a的b次方对c取余的值输入第一行输入一个整数n表示测试数据的组数(nlong long fun(long long a,long long b,long long c){ long long r=a%c; long long k=1; while(b) { if (b&1) k=(k*r)%c; r=(r*r)%c; b>>=1; } return k;}int m... 阅读全文
posted @ 2013-08-20 17:14 王莜轩 阅读(348) 评论(0) 推荐(0) 编辑
摘要: 汉诺塔(一)时间限制:1000 ms | 内存限制:65535 KB难度:3描述在印度,有这么一个古老的传说:在世界中心贝拿勒斯(在印度北部)的圣庙里,一块黄铜板上插着三根宝石针。印度教的主神梵天在创造世界的时候,在其中一根针上从下到上地穿好了由大到小的64片金片,这就是所谓的汉诺塔。不论白天黑夜,总有一个僧侣在按照下面的法则移动这些金片:一次只移动一片,不管在哪根针上,小片必须在大片上面。僧侣们预言,当所有的金片都从梵天穿好的那根针上移到另外一根针上时,世界就将在一声霹雳中消灭,而梵塔、庙宇和众生也都将同归于尽。现在请你计算出起始有m个金片的汉诺塔金片全部移动到另外一个针上时需要移动的最少步 阅读全文
posted @ 2013-08-20 11:29 王莜轩 阅读(362) 评论(4) 推荐(0) 编辑