自己的usaco代码---PROB Prime Cryptarithm

来源:互联网 发布:三星充电器数据 编辑:程序博客网 时间:2024/05/18 03:02

原创代码

仅供参考

欢迎评论O(∩_∩)O~

/*ID: 输你自己的PROG: crypt1LANG: C++*//*   ***    **-------   ***  ***-------  *****/ #include <iostream>#include <algorithm>#include <cstdio>#include <cstring>#include <string>#include <cmath>using namespace std;int a[12],b[16],c[7];int n;bool find(int x){     for(int i=1;i<=n;i++)   if(x==a[i]) return true; return false; }bool can(){  int k=0; if(c[3]==0||c[5]==0) return false; for(int i=1;i<=3;i++) {   b[++k]+=c[i]*c[4];   if(b[k]>9) {     b[k+1]+=b[k]/10;  b[k]%=10;  }   if(!find(b[k])) return false;   } if(b[++k]!=0) return false;     for(int i=1;i<=3;i++) {   b[++k]+=c[i]*c[5];   if(b[k]>9){  b[k+1]+=b[k]/10;  b[k]%=10;  }   if(!find(b[k])) return false;   } if(b[++k]!=0) return false; for(int i=2;i<=4;i++){   b[++k]+=b[i]+b[i+3];   if(b[k]>9){  b[k+1]+=b[k]/10;  b[k]%=10;  }   if(!find(b[k])) return false;       } if(b[++k]!=0) return false;   return true;}int main(){freopen("crypt1.in","r",stdin);freopen("crypt1.out","w",stdout);cin>>n;for(int i=1;i<=n;i++) cin>>a[i];int ans=0;for(int q=1;q<=n;q++)  for(int w=1;w<=n;w++)    for(int e=1;e<=n;e++)      for(int r=1;r<=n;r++)        for(int t=1;t<=n;t++){  memset(b,0,sizeof(b));  c[1]=a[q],c[2]=a[w],c[3]=a[e],c[4]=a[r],c[5]=a[t];          if(can())   ans++;  }cout<<ans<<endl;return 0;} 
ps:
两个字

暴搜

原创粉丝点击