/* 题目意思很简单,直接暴力就行。。。 */ #include<iostream> #include<cstdio> #include<algorithm> using namespace std; int main(){ int n; while(cin>>n){ int flag=0; for(int i=1;i<=9;i++){ for(int j=0;j<=9;j++){ if(j==i) continue; for(int k=0;k<=9;k++){ if(k==i||k==j) continue; for(int r=0;r<=9;r++){ if(r==i||r==j||r==k) continue; int sum=i*1000+j*100+k*10+r; if(sum>n) {flag=1; cout<<sum<<endl; break;} } if(flag)break; } if(flag) break; } if(flag) break; } } }
/* 题意:素数举证,也是直接暴力。。。 */ #include<iostream> #include<cstdio> #include<algorithm> using namespace std; #define manx 505 #define inf 99999999 #define maxx 100009 int x[manx][manx],n,m; bool s[maxx]; void prime(){ for(int i=0;i<maxx;i++) s[i]=0; s[0]=s[1]=1; for(int i=2;i*i<maxx;i++){ if(!s[i]){ for(int j=2;j*i<maxx;j++) s[j*i]=1; } } } int fan(int n){ int p=0; while(s[n]){ n++,p++; } return p; } int main(){ prime(); while(cin>>n>>m){ int sum=inf,ans=0; for(int i=0;i<n;i++){ for(int j=0;j<m;j++){ scanf("%d",&x[i][j]); if(s[x[i][j]]) { ans+=fan(x[i][j]); } } if(sum>ans ) sum=ans; ans=0; } for(int j=0;j<m;j++){ for(int i=0;i<n;i++){ if(s[x[i][j]]) { ans+=fan(x[i][j]); } } if(sum>ans ) sum=ans; ans=0; } cout<<sum<<endl; } } /* 3 3 1 2 3 5 6 1 4 4 1 2 3 4 8 8 9 2 9 2 2 1 3 4 2 */
作者:lijunqiangacm 发表于2013-3-10 17:11:43 原文链接
阅读:75 评论:0 查看评论