Painter's Problem POJ - 1681

题意:

涂色,每涂一个格子就会将其临近的格子都改变,黄的变成白的,白的变成黄的,

给出画板初始情况,问最少多少次操作可以使得画板全部变成黄色

思路:

消元后,自由变元的取值情况的变化会造成后边的解的变化

剩下最后n个变元,遍历每种取值情况后,回溯找到解中操作次数最少的

#include
#include
#include
#include
using namespace std;
const int MAXN=300;
int a[MAXN][MAXN];
char m[MAXN][MAXN];
int s[MAXN][MAXN];
int x[MAXN];
int x_free[MAXN];
int n;

void pp(int p[MAXN][MAXN],int a,int b)
{
	for(int i=0;i= 0; i--)
    {
    	temp = a[i][var];
    	for(int jj=i+1;jj=n||dy>=n) continue;
		s0=dx*n+dy;
		a[s0][s1]=1;
	} 	
}

int main()
{
	int T,tt;
	cin>>T;
	while(T--)
	{
		memset(a,0,sizeof(a));
		scanf("%d",&n);
	
		for(int i=0;i


你可能感兴趣的:(高斯消元)