Title Link: http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=13175
Topic key: Convert 0~9 10 number to binary number for enumeration comparison
int num[10]={490,288,242,434,312,410,474,290,506,442};
#include <iostream>#include<cstdio>#include<cstdlib>#include<cmath>#include<algorithm>#include<cstring>#include<stack>#include<cctype>#include<queue>#include<string>#include<vector>#include<Set>#include<map>#include<climits>#defineLson Root<<1,l,mid#defineRson Root<<1|1,mid+1,r#defineFi first#defineSe Second#definePing (x, y) ((x-y) * (x-y))#defineMST (x, y) memset (x,y,sizeof (x))#defineMCP (x, y) memcpy (x,y,sizeof (y))#defineMin (x, y) (x<y?x:y)#defineMax (x, y) (x>y?x:y)using namespacestd;#defineGamma 0.5772156649015328606065120//Euler Constants#defineMOD 100000007#defineINF 0x3f3f3f3f#defineN 105#defineMAXN 10001000typedefLong LongLl;typedef pair<int,int>PII;intnum[Ten]={490,288,242,434,312,410,474,290,506,442};inttemp;Charch[ -];inta[4],b[4];intMain () {intI,j,x,y,figure,group,case=0, _i; //freopen ("In.txt", "R", stdin);scanf"%d",&group); gets (CH); while(group--) {MST (A,0); MST (b,0); for(i=0; i<3; ++i) {_i=0; Gets (CH); for(j=0; j< A; ++j) { if(ch[_i++]!=' ') {a[j/3]|=1<< (i*3+j%3); } } ++_i; for(j=0; j< A; ++j) { if(ch[_i++]!=' ') {b[j/3]|=1<< (i*3+j%3); } } } intindex=0; intANSH,ANSM; for(i=0; i<1440; ++i) { intj= (I- the+1440)%1440; inth1=i/ -; intm1=i% -; inth2=j/ -; intm2=j% -; if((num[h1/Ten]&a[0])!=a[0]) Continue; if(int(num[h1%Ten]&a[1])!=a[1]) Continue; if(int(num[m1/Ten]&a[2])!=a[2]) Continue; //cout<<1<<endl; if((num[m1%Ten]&a[3])!=a[3]) Continue; if((num[h2/Ten]&b[0])!=b[0]) Continue; if((num[h2%Ten]&b[1])!=b[1]) Continue; if((num[m2/Ten]&b[2])!=b[2]) Continue; if((num[m2%Ten]&b[3])!=b[3]) Continue; if(++index>1) Break; Ansh=h1;ansm=M1; } if(index>1) printf ("Not sure\n"); Elseprintf"%d%d%d%d\n", ansh/Ten, ansh%Ten, ansm/Ten, ansm%Ten); } return 0;}
Reference: Portal
poj1676 (Convert to binary solution)