上一页 1 ··· 24 25 26 27 28 29 30 31 32 ··· 36 下一页

2011年4月3日

poj 3372

摘要: 题意:N个小孩围成一个圈,老师 顺时针隔 0, 1, 2, 3,。。。个小孩发糖,问每个小孩是否都能领到糖。解法很简单 当N是2^K时输出YES,否则输出NO。printf((N & N - 1) ? "NO\n" : "YES\n");关键这个怎么证明呢。看到Discuss里说和2次剩余有关,但是没有看出来。。。下面给出自己的简易证明。当N是奇数时,拿 7 为例。当增量大于N时,就mod N,对增量没有影响。增量 0 1 2 3 4 5 6 0 1 2 3 4 5 6编号 0 1 3 6 3 1 0 0 1 3 6 3 1 0你会看到,这个数列 阅读全文

posted @ 2011-04-03 13:56 宇宙吾心 阅读(339) 评论(0) 推荐(0)

2011年4月2日

poj 2244

摘要: 枚举+递推。代码:#include<iostream>#include<fstream>using namespace std;void read(){// ifstream cin("in.txt"); int i,j,k,n,s; while(cin>>n){ if(n==0) return ; for(i=1;;i++) { s=0; for(j=2;j<n;j++) s=(s+i)%j; if(s==0) { cout<<i<<endl; break; } } }}int main(){ read() 阅读全文

posted @ 2011-04-02 21:03 宇宙吾心 阅读(186) 评论(0) 推荐(0)

poj 1012

摘要: 约瑟夫环。1.由于好人和坏人的排放是连续的,可以(把坏人看作一个整体)直接计算每次要杀的人的编号,若是好人,则杀错了,则继续找;若是坏人,则把该坏人剔除(无须操作),将joseph环的长度减一,而好人的编号是不变的,所以可以继续计算下一个人要杀的人的编号,直到把坏人都杀光,这种情况对应的结果就是我们想要的。2.检测数据必须是k+1倍数或者k+1的倍数+1代码:#include<iostream>#include<fstream>using namespace std;int f[20];void read(){// ifstream cin("in.txt&q 阅读全文

posted @ 2011-04-02 20:46 宇宙吾心 阅读(373) 评论(0) 推荐(0)

poj 3517

摘要: 约瑟夫环。代码:#include <iostream>#include<fstream>using namespace std;int main(){// ifstream cin("in.txt"); int n,k,m,x; while(cin>>n>>k>>m) { if(n==0) return 0; x=0; for(int i=2;i<n;++i) x=(x+k)%i; x=(x+m)%n; printf("%d\n",x+1); } return 0;} 阅读全文

posted @ 2011-04-02 14:46 宇宙吾心 阅读(237) 评论(0) 推荐(0)

2011年3月31日

poj 2992

摘要: 约束的个数。代码:#include<iostream>#include<fstream>using namespace std;int n,m;long long ans;int a[432][432];int b[432];void read(){// ifstream cin("in.txt"); int i,j,k; for(i=2;i<=431;i+=2) a[i][2]=a[i/2][2]+1; for(i=3;i<=431;i+=2) if(b[i]==0) { a[i][i]=1; for(j=2*i;j<=431;j 阅读全文

posted @ 2011-03-31 13:50 宇宙吾心 阅读(291) 评论(0) 推荐(0)

poj 3090

摘要: 递推欧拉函数。代码:#include<iostream>#include<fstream>#include<cmath>using namespace std;int b[1001];int n;void read(){// ifstream cin("in.txt"); int i,j,k,ans; for(i=2;i<=1000;i++) b[i]=i; for(i=2;i<=1000;i+=2) b[i]/=2; for(i=3;i<=1000;i+=2) if(b[i]==i) for(j=i;j<=100 阅读全文

posted @ 2011-03-31 11:31 宇宙吾心 阅读(190) 评论(0) 推荐(0)

poj 2478

摘要: 原来欧拉函数也存在递推关系。代码:#include<iostream>#include<fstream>#include<cmath>using namespace std;long long b[1000001];int n;void read(){// ifstream cin("in.txt"); int i,j,k,ans; for(i=2;i<=1000000;i++) b[i]=i; for(i=2;i<=1000000;i+=2) b[i]/=2; for(i=3;i<=1000000;i+=2) if(b 阅读全文

posted @ 2011-03-31 11:02 宇宙吾心 阅读(266) 评论(0) 推荐(0)

poj 2773

摘要: 欧拉函数。代码:#include<iostream>#include<fstream>#include<cmath>using namespace std;int a[1001];int b[1000001];int n,m;void read(){// ifstream cin("in.txt"); int i,j,k,ans,s; for(i=4;i<=1000;i+=2) a[i]=1; for(i=3;i<=1000;i+=2) if(a[i]==0) for(j=2*i;j<=1000;j+=i) a[j]=1 阅读全文

posted @ 2011-03-31 10:35 宇宙吾心 阅读(233) 评论(0) 推荐(0)

poj 2407

摘要: 欧拉函数。代码:#include<iostream>#include<fstream>#include<cmath>using namespace std;int a[40001];long long n,m;void read(){// ifstream cin("in.txt"); int i,j,k; long long ans; for(i=4;i<=40000;i+=2) a[i]=1; for(i=3;i<=40000;i+=2) if(a[i]==0) { for(j=2*i;j<=40000;j+=i) 阅读全文

posted @ 2011-03-31 09:55 宇宙吾心 阅读(296) 评论(0) 推荐(0)

2011年3月29日

poj 1084

摘要: 原根的求法。代码:#include<iostream>#include<fstream>#include<cmath>using namespace std;int a[65537];int n;void read(){// ifstream cin("in.txt"); int i,j,k,ans,n; for(i=4;i<=65536;i+=2) a[i]=1; for(i=3;i<=65536;i+=2) if(a[i]==0) for(j=2*i;j<=65536;j+=2) a[j]=1; while(cin& 阅读全文

posted @ 2011-03-29 21:48 宇宙吾心 阅读(819) 评论(1) 推荐(1)

上一页 1 ··· 24 25 26 27 28 29 30 31 32 ··· 36 下一页

导航