Painter's Problem
| Time Limit: 1000MS | Memory Limit: 10000K | |
| Total Submissions: 5378 | Accepted: 2601 |
Description

Input
Output
Sample Input
2
3
yyy
yyy
yyy
5
wwwww
wwwww
wwwww
wwwww
wwwww
Sample Output
0
15
题解:
构造矩阵高斯消元后可以得到一组解,但是题目中要求的是求出最小染色次数。所以要对其中不确定的方案进行枚举。
#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cmath>
#include<algorithm>
#include<cstring>
#include<queue>
#include<vector>
using namespace std;
int T,N,ANS;
int a[][];
bool gauss(){
int now=;
for(int i=;i<=N*N;i++){
int to=now;
while(to<=N*N&&a[to][i]==) to++;
if(to>N*N) continue;
if(to!=now){
for(int j=;j<=N*N+;j++) swap(a[to][j],a[now][j]);
}
for(int j=;j<=N*N;j++){
if(j!=now&&a[j][i]){
for(int k=;k<=N*N+;k++){
a[j][k]^=a[i][k];
}
}
}
now++;
}
for(int i=now;i<=N*N;i++)
if(a[i][N*N+]!=) return false;
return true;
} int v[],cnt;
void dfs(int x){
if(cnt>=ANS) return ;//已经比目前的答案大了,没有必要再搜
if(x==){
ANS=min(cnt,ANS);
return ;
}
if(a[x][x]!=){
int num=a[x][N*N+];//num表示第x块砖染色不染色
for(int i=x+;i<=N*N;i++){
if(a[x][i]!=) num=num^v[i];//已经枚举过的x+1~N*N中某块砖如果可以对x产生影响且已染色,就让num改变一次
}
v[x]=num;
if(num==) cnt++;
dfs(x-);
if(num==) cnt--;
}
else{//枚举按或不按两种情况
v[x]=; dfs(x-);
v[x]=; cnt++; dfs(x-); cnt--;
}
} int main(){
scanf("%d",&T);
while(T--){
memset(a,,sizeof(a));
scanf("%d",&N);
for(int i=;i<=N*N;i++){
a[i][i]=;
if(i%N!=) a[i][i-]=;
if(i%N!=) a[i][i+]=;
if(i>=N+) a[i][i-N]=;
if(i<=N*(N-)) a[i][i+N]=;
}
for(int i=;i<=N;i++){
char s[];
scanf("%s",s+);
for(int j=;j<=N;j++){
if(s[j]=='w') a[(i-)*N+j][N*N+]=;
}
}
if(gauss()==false){
puts("inf");
continue;
}
ANS=<<;
dfs(N*N);
printf("%d\n",ANS);
}
return ;
}
Painter's Problem的更多相关文章
- poj 1681 Painter's Problem
Painter's Problem 题意:给一个n*n(1 <= n <= 15)具有初始颜色(颜色只有yellow&white两种,即01矩阵)的square染色,每次对一个方格 ...
- Painter's Problem poj1681 高斯消元法
Painter's Problem Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 4420 Accepted: 2143 ...
- POJ 1681 Painter's Problem 【高斯消元 二进制枚举】
任意门:http://poj.org/problem?id=1681 Painter's Problem Time Limit: 1000MS Memory Limit: 10000K Total ...
- [POJ1681]Painter's Problem(高斯消元,异或方程组,状压枚举)
题目链接:http://poj.org/problem?id=1681 题意:还是翻格子的题,但是这里有可能出现自由变元,这时候枚举一下就行..(其实这题直接状压枚举就行) /* ━━━━━┒ギリギリ ...
- OpenJudge 2813 画家问题 / Poj 1681 Painter's Problem
1.链接地址: http://bailian.openjudge.cn/practice/2813 http://poj.org/problem?id=1681 2.题目: 总时间限制: 1000ms ...
- Painter's Problem (高斯消元)
There is a square wall which is made of n*n small square bricks. Some bricks are white while some br ...
- POJ 1681 Painter's Problem(高斯消元+枚举自由变元)
http://poj.org/problem?id=1681 题意:有一块只有黄白颜色的n*n的板子,每次刷一块格子时,上下左右都会改变颜色,求最少刷几次可以使得全部变成黄色. 思路: 这道题目也就是 ...
- POJ 1681 Painter's Problem (高斯消元)
题目链接 题意:有一面墙每个格子有黄白两种颜色,刷墙每次刷一格会将上下左右中五个格子变色,求最少的刷方法使得所有的格子都变成yellow. 题解:通过打表我们可以得知4*4的一共有4个自由变元,那么我 ...
- POJ 1681 Painter's Problem (高斯消元 枚举自由变元求最小的步数)
题目链接 题意: 一个n*n 的木板 ,每个格子 都 可以 染成 白色和黄色,( 一旦我们对也个格子染色 ,他的上下左右 都将改变颜色): 给定一个初始状态 , 求将 所有的 格子 染成黄色 最少需要 ...
随机推荐
- Struts2的简单的文件上传
1文件上传的流程: 第一步:首先得用表单标签的<s:file>在客户端接收上传的文件例如: <%@ page language="java" import=&qu ...
- C# DataTable和DataRelation
form2.cs using System; using System.Collections.Generic; using System.ComponentModel; using System.D ...
- local unversioned, incoming add upon update问题
当update的时候遇到如下问题 svn status D C ~/workspace/test/a.c > local unversioned, incoming add upon updat ...
- 浅析pc机上如何将vmlinuz-2.6.31-14-generic解压出vmlinux
浅析pc机上如何将vmlinuz-2.6.31-14-generic解压出vmlinux luther@gliethttp:~$ vim /boot/grub/grub.cfg 可以看到我们进入的系统 ...
- Python的编码问题(一)
一.什么是编码 可以说,计算机是一个即聪明又笨蛋的家伙.说它聪明,是因为他可以做很多事情,它的强大无需多说,大家应该都有所了解以及感受.但是为什么说它又是个笨蛋呢,因为我们在电脑上写出的每一个字,保存 ...
- JSR303验证
转自:http://blog.csdn.net/lu930124/article/details/52587135 JSR-303是一个数据验证的规范,这里我不会讲这个规范是怎么回事,只会讲一下JSR ...
- Mybatis框架学习总结-表的关联查询
一对一关联 创建表和数据:创建一张教师表和班级表,这里假设一个老师只负责教一个班,那么老师和班级之间的关系就是一种一对一的关系. CREATE TABLE teacher( t_id INT PRIM ...
- celery-rabbitmq 安装部署
一:Python安装 1.下载python3源码 wget https://www.python.org/ftp/python/3.5.0/Python-3.5.0.tgz 2.解压 tar xf P ...
- 微信iOS版更新:可批量管理不常联系的朋友
iOS版微信更新了v6.5.13版本,在新版本当中微信新增加了可批量管理不常联系的朋友功能,同时在群资料页可以查看最近收到的小程序,不过据网友爆料,腾讯在新的更新日志当中已经删除了“批量管理不常联系的 ...
- neutron ml2
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/zhoumingbo532/article/details/27964675 在介绍ml2之前,先介绍 ...