题目和poj1222差不多,但是解法有一定区别,1222只要求出任意一解,而本题需要求出最少翻转次数。所以需要枚举自由变元,变元数量为n,则枚举的次数为1<<n次
#include#include #include #include using namespace std;const int maxn=500;char s[maxn][maxn];int a[maxn][maxn],x[maxn],fre[maxn];const int INF=1e9;void debug(int n){ for(int i=0; i =0 && x =0 && y >=1; } for(int row=k-1; row>=0; row--) { x[row]=a[row][var]; for(col=row+1; col