dfs qipan
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了dfs qipan相关的知识,希望对你有一定的参考价值。
#include<iostream> char data[16]; int a[16]; int d[4]={-4,1,4,-1}; char b[16]; int flag; int count=0; int min=1000; void dfs(int step) { if(step==16) { /* for(int i=0;i<16;i++) printf("%d",a[i]); printf("\n");*/ count=0;flag=1; for(int i=0;i<16;i++) b[i]=data[i]; for(int i=0;i<16;i++) { /*if(a[i]==0) b[i]=data[i];*/ if(a[i]==1) { if(b[i]==‘b‘) { b[i]=‘w‘; } else { b[i]=‘b‘; } for(int j=0;j<4;j++) { if(i+d[j]>=0&&i+d[j]<16) { if(b[i+d[j]]==‘w‘) { b[i+d[j]]=‘b‘; } else { b[i+d[j]]=‘w‘; } } } } } /* for(int i=0;i<16;i++) { printf("%c",b[i]); } printf("\n");*/ for(int i=0;i<16;i++) { if(b[0]==b[i]) flag=1; else { flag=0; break; } } /*if(b[0]==b[1]==b[2]==b[3]==b[4]==b[5]==b[6]==b[7]==b[8]==b[9]==b[10]==b[11]==b[12]==b[13]==b[14]==b[15]) flag=1;*/ if(flag==1) { printf("!!"); for(int i=0;i<16;i++) { if(a[i]==1) count++; } printf("%d ",count); } return ; } for(int i=0;i<2;i++) { a[step]=i; dfs(step+1); } } int main() { freopen("input.txt","r",stdin); for(int i=0;i<16;i++) { scanf("%c",&data[i]); } for(int i=0;i<16;i++) { b[i]=data[i]; } dfs(0); }
以上是关于dfs qipan的主要内容,如果未能解决你的问题,请参考以下文章