题意为有一个4*4的棋盘棋子为黑或白,可以任意选择一个点将这个点和上下左右变为相反的颜色,问最少的操作次数可以将棋盘中的棋子是一个颜色。思路 可以发现对于一个点,要不选择一次,要不一次也不选择,选两次可以发现和不选择是一个效果,选择3次和一次也是一个效果,自然可以想到二进制枚举每种情况,选择最小值即可。 #include<iostream> using namespace std; char a[5][5],b[5][5]; int dx[5]={0,0,1,0,-1},dy[5]={0,1,0,-1,0},ans=20; void init() { for(int i=0...