题意:一个4*4的围棋棋盘,黑白子随机,每次翻转同时翻转四周的棋子,最少翻转几次使所有棋子同色。
代码,非常漂亮的DFS
#include <cstdio>
#include <iostream>
using namespace std;
int map[10][10]={
0};//考虑到要不断翻转,我们用0和1代表棋盘黑白两种颜色,这样翻转就可以用“非”运算符来代替了
int dir[5][2]={
{
-1,0},{
1,0},{
0,-1},{
0,1},{
0,0}};
int sum;
bool flag;
void