题目地址:http://poj.org/problem?id=1753
题意:给出4*4的黑色或白色的方格,要求改变最少的方格使之变成全黑或全白。(改变的时候将会改变自身加和上下左右)。
思路:直接枚举,共有2^16(16个方格,要么改变(用1表示),要么不改变(用0表示)的两种状态)种可能。
源代码:
#include<iostream>
using namespace std;
int main()
{
int i,j,k;
int t,m,n;
char s[4][5];
int a[4][4];
int d[4][4];//中间数组,测试改变后的数组是否达到目标状态。
int b[16];//方便处理
while(cin>>s[0])
{
for(i=1;i<4;i++)
cin>>s[i];
for(i=0;i<4;i++)
for(j=0;j<4;j++)
if(s[i][j]=='w'||s[i][j]=