标签:style blog class code c tar
思路:枚举然后深搜,时间复杂度有点高。
代码:
1 #include<cstdio> 2 #include<cstring> 3 #include<iostream> 4 #include<algorithm> 5 using namespace std; 6 int a[25]; 7 char c[25]; 8 int flag; 9 int len; 10 int judge() 11 { 12 int i,j; 13 int cnt=0; 14 for(i=0;i<len;i++) 15 if (a[i]) 16 cnt++; 17 if (!cnt) 18 return 1; 19 return 0; 20 } 21 void change(int i) 22 { 23 a[i]^=1; 24 if (i-1>=0) 25 a[i-1]^=1; 26 if (i+1<len) 27 a[i+1]^=1; 28 } 29 void dfs(int j,int now,int sum) 30 { 31 int i; 32 if (now==sum) 33 { 34 flag=judge(); 35 return ; 36 } 37 for(i=j+1;i<len;i++) 38 { 39 change(i); 40 dfs(i,now+1,sum); 41 if (flag) 42 return ; 43 change(i); 44 } 45 } 46 int main() 47 { 48 while(scanf("%s",c)!=EOF) 49 { 50 int i,j; 51 len=strlen(c); 52 int ce=0; 53 memset(a,0,sizeof(a)); 54 for(i=0;i<len;i++) 55 { 56 a[i]=c[i]-‘0‘; 57 if (a[i]) 58 ce++; 59 } 60 if (!ce) 61 { 62 printf("0\n"); 63 continue; 64 } 65 int sum=0; 66 flag=0; 67 for(i=0;i<len;i++) 68 { 69 dfs(-1,0,++sum); 70 if (flag) 71 break; 72 } 73 if (flag) 74 printf("%d\n",sum); 75 else 76 printf("NO\n"); 77 } 78 return 0; 79 }
HDU2209 ( 翻纸牌游戏 ),布布扣,bubuko.com
标签:style blog class code c tar
原文地址:http://www.cnblogs.com/ZhaoPengkinghold/p/3732681.html