hdu 1172 猜数字(暴力枚举)
2014-01-23 23:24
260 查看
题目
这是一道可以暴力枚举的水题。
//以下两个都可以ac,其实差不多一样,呵呵
//1:
View Code
//不过2很神奇的是0毫秒,原因不详
这是一道可以暴力枚举的水题。
//以下两个都可以ac,其实差不多一样,呵呵
//1:
#include<stdio.h> struct tt { char a[5],b[2],c[2]; }e[105]; int main() { int n,i,count,j,num[4],flag,a1,a2,a3,a4; bool yi,mark[4]; while(scanf("%d",&n),n) { for(i=0;i<n;i++)scanf("%s%s%s",e[i].a,e[i].b,e[i].c); yi=false; num[0]=num[1]=num[2]=num[3]=flag=0; for(j=1;j<10000;j++) { for(i=0;i<n;i++) { count=0; for(int ii=0;ii<4;ii++) if(num[ii]==e[i].a[ii]-'0')count++; if(count!=e[i].c[0]-'0')break; for(int q=0;q<4;q++)mark[q]=false; count=0; for(int w=0;w<4;w++) for(int r=0;r<4;r++) if(num[w]==e[i].a[r]-'0'&&!mark[r]) {mark[r]=true,count++;break;} if(count!=e[i].b[0]-'0')break; } if(i==n){ flag++; if(!yi)a1=num[0],a2=num[1],a3=num[2],a4=num[3],yi=true; } num[3]++; if(num[3]>9)num[2]++,num[3]=num[3]%10; //原来之前是这里细节出错了,要注意哦 if(num[2]>9)num[1]++,num[2]=num[2]%10; if(num[1]>9)num[0]++,num[1]=num[1]%10; num[0]=num[0]%10; } if(flag==1)printf("%d%d%d%d\n",a1,a2,a3,a4); else printf("Not sure\n"); } return 0; }
View Code
//不过2很神奇的是0毫秒,原因不详
相关文章推荐
- hdu 1172 猜数字 解题报告<暴力枚举>
- HDU 1172 猜数字 暴力枚举
- HDU 1172 猜数字(暴力枚举)
- HDU 1172 猜数字(枚举)
- HDU 1172 猜数字(枚举)
- HDU 1172 猜数字 (傻逼暴力题)
- HDU 1172猜数字(直接暴力枚举即可)
- HDU 1172 猜数字(暴力)
- HDU - 1172 猜数字 (暴力+模拟)
- hdu 1172 猜数字(枚举)
- hdu1172(暴力枚举)
- hdu 1172 猜数字(枚举)
- HDU 1172 猜数字(暴力)
- hdu 1172 猜数字 (枚举)
- HDU 1172 暴力枚举
- hdu1172 猜数字(枚举)
- HDU 1172 猜数字 水题
- hdu 4932 Miaomiao's Geometry 暴力枚举
- HDU1238_搜索入门_暴力枚举
- HDOJ/HDU 1015 Safecracker(枚举、暴力)