poj1681 Painter's Problem高斯消元

链接http://poj.org/problem?id=1681

View Code
 1 #include <stdio.h> 
 2 #include <string.h>
 3 #include <algorithm>
 4 #include <cmath>
 5 using namespace std;
 6 int d[230][230], N, M;
 7 char s[16][16]; 
 8 void solve( int n)
 9 {
10     int x[230],m[20], t, ans=1000, temp;
11     t=M-n;
12     for( int i=1; i<=pow( 2, t ); ++i ){
13         memset( x, 0, sizeof x  );
14         for(int j=0; j<t; ++j){
15             m[j]=(i&(1<<j));
16             if(m[j]){
17                 x[n+j]=1;
18             }    
19         }
20         temp=0;
21         for( int p=n+1;p>=1;--p ){
22             for(int k=i+1;k<=M;++k){
23                     x[p]^=( x[k]&&d[p][k] );
24                 
25             }
26             x[p]^=d[p][M+1];
27             if( x[p])
28                 temp++;
29         } 
30         ans=min( ans, temp );
31     }
32     printf( "%d\n", ans );
33 }
34 void Gauss(  )
35 {
36     int i=1, j, k , p, t;
37     for(j=1; j<=M; ++j){
38         for(p=i; p<=M; ++p){
39             if(d[p][j])break;
40         }
41         if( p>M )continue;
42         if(p!=i){
43             for(k=j;k<=M+1; ++k){
44                 t=d[p][k],d[p][k]=d[i][k],d[i][k]=t;
45             }    
46         }
47         for(p=i+1; p<=M; ++p){
48             if( d[p][j] ){
49                 for( k=j; k<=M+1; ++k ){
50                     d[p][k]^=d[i][k];
51                 }
52             }
53         }
54         ++i;
55     }
56     for( p=i; p<=M; ++p ){
57         if( d[p][M+1] ){
58             puts("inf");
59             return;
60         }
61     }    
62     solve( i-1 );
63 }
64 int main( )
65 {
66     int T; 
67     scanf("%d", &T );
68     while( T --) {
69         scanf( "%d", &N );
70         M=N*N;
71         for( int i=0; i<N; ++ i ){
72             scanf( "%s", s[i] ); 
73         } 
74         memset( d, 0, sizeof d );
75         for( int i=1; i<=M; ++ i )
76             d[i][i]=1;
77         for( int i=0; i<N; ++i ){
78             for( int j=0;j<N; ++j ){
79                 if( s[i][j]=='w' ) d[i*N+j+1][M+1]=1;
80                 
81                 if( i>0 )d[(i-1)*N+j+1][i*N+j+1]=1;
82                 if( j>0 )d[i*N+j][i*N+j+1]=1;
83                 if( i<N-1 )d[(i+1)*N+j+1][i*N+j+1]=1;
84                 if( j<N-1 )d[i*N+j+2][i*N+j+1]=1;        
85             } 
86         }
87         Gauss( ); /*
88         for( int i=1; i<=M; ++i ){
89             for(int j=1;j<=M; ++ j ){
90                 printf( "%d ", d[i][j] );
91             }
92             puts( "" );
93         }*/
94     } 
95     return 0;    
96 } 

转载于:https://www.cnblogs.com/jian1573/archive/2012/07/28/2612890.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/401408.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Mac下关于-您不能拷贝项目“”,因为它的名称太长或包括的字符在目的宗卷上无效。-的删除...

打开 Terminal 应用程序。键入&#xff1a; sudo rm -rf注意&#xff1a;在“-rf”后键入一个空格。没有空格该命令将不能执行。在步骤 6 之前请不要按下 Return 键。打开您的“废纸篓”。从“编辑”菜单中选择“全选”。将“废纸篓”中的所有内容都拖到 Terminal 窗口中。这将…

小程序、vue 新闻上下轮播

小程序、vue 新闻上下轮播vue小程序红色部分&#xff1a;相当于放映机&#xff0c;也就是容器&#xff0c;overflow&#xff1a;hidden绿色内容&#xff1a;相当于胶片&#xff0c;也就是domvue vue的核心之一&#xff0c;数据驱动模版&#xff0c;循环播放映射的数据上就是 […

Cogs 376. [IOI2002]任务安排(后效性DP)

[IOI2002]任务安排 ★☆ 输入文件&#xff1a;batch.in 输出文件&#xff1a;batch.out 简单对比 时间限制&#xff1a;1 s 内存限制&#xff1a;128 MB N个任务排成一个序列在一台机器上等待完成&#xff08;顺序不得改变&#xff09;&#xff0c;这N个任务被分成若干批&am…

ajax.actionlink使用问题

突然发现ajax.actionlink调用的方法全是GET方式的&#xff0c;就算制定了POST也不行&#xff0c;Confirm窗口也弹不出来。。。直接StackOverFlow搜索 ajax.actionlink post not work, 出来一堆结果&#xff0c;有的是因为路由参数不对&#xff0c;有的是回调方法不对&#xff…

JAVA Stack栈和Heap堆的区别(转)

首先分清楚Stack&#xff0c;Heap的中文翻译&#xff1a;Stack—栈&#xff0c;Heap—堆。在中文里&#xff0c;Stack可以翻译为“堆栈”&#xff0c;所以我直接查找了计算机术语里面堆和栈开头的词语&#xff1a;堆存储&#xff1a; heapstorage 堆存储分配&#xff1a; he…

CSDN Markdown编辑器编辑教程

目录快捷键文字样式设置&#xff08;字体, 大小, 颜色, 高亮底色&#xff09;内嵌HTML表格定义列表代码块脚注数学公式UML 图:离线写博客常见颜色[TOC](目录)快捷键 - 加粗 Ctrl B - 斜体 Ctrl I - 引用 Ctrl Q- 插入链接 Ctrl L- 插入代码 Ctrl K- 插入图…

一个奇怪的EL表达式错误

下图是在Struts2的action中写的一个方法 JSP页面代码如下&#xff1a; 在页面访问如下路径&#xff1a;http://localhost:8088/maven_ssh/cust_getCustList 目前推测原因是存到session中的对象键值"custList"和action中方法名getCustList冲突了&#xff1f; 各位怎么…

Ruby 数组

city["北京","上海","天津","重庆"]puts citycityArray.newcity[0]"北京"city[1]"上海"city[2]"天津"city[3]"重庆"puts city city["北京","上海","天津",&qu…

(转) java 复制文件,不使用输出流复制,高效率,文件通道的方式复制文件

public static void fileChannelCopy(File s, File t) {FileInputStream fi null;FileOutputStream fo null;FileChannel in null;FileChannel out null;try {fi new FileInputStream(s);fo new FileOutputStream(t);in fi.getChannel();// 得到对应的文件通道out fo.g…

Mysql中的in和find_in_set的区别?

在mysql中in的使用情况如下&#xff1a; select * from article where 列名 in(值1&#xff0c;值2&#xff0c;值3.....)&#xff1b; select * from article where 值1 in(值1&#xff0c;值2&#xff0c;值3.....)&#xff1b; 在mysql中find_in_set的使用情况如下&#xff…

Vue组件强制刷新(重新渲染)的四种方案对比

文章目录前言一、刷新整个页面二、使用v-if标记三、forceUpdate四、key-changing五、应用场景vue具有缓存的页面的强制刷新进入页面输入框自动聚焦前言 Vue的双向绑定属于自动档&#xff1b;在特定的情况下&#xff0c;需要手动触发“刷新”操作&#xff0c;目前有四种方案可以…

AOJ 0525 Osenbei【穷竭搜索】

AOJ 0525 题意&#xff1a; 有一个烤饼器可以烤r行c列的煎饼&#xff0c;煎饼可以正面朝上&#xff08;用1表示&#xff09;也可以背面朝上&#xff08;用0表示&#xff09;。一次可将同一行或同一列的煎饼全部翻转。现在需要把尽可能多的煎饼翻成正面朝上&#xff0c;问最多能…

wp imei

由于WP8SKD不提供获取机子IMEI的方法&#xff0c;所以无法得到机子IMEI&#xff0c;但是SDK提供一另一个获取唯一ID的方法&#xff0c;在Microsoft.Phone.Info.DeviceExtendedProperties里面的DeviceUniqueId。 通过这个方法可以获得. 参考 wp8sdk有关DeviceExtendedProperties…

css-如何对每行中最后一个元素删除边距?

文章目录前言一、负边距一、nth-child()系列)前言 如何从最后一列的每个元素中删除边距&#xff1f; 在元素宽度不确定的情况下&#xff0c;或者如果屏幕很小或用户调整浏览器大小&#xff0c;则每行排列的个数就不确定 因此&#xff0c;在任何情况下&#xff0c;最后一列中出…

Cntlm安装和配置心得

2019独角兽企业重金招聘Python工程师标准>>> 对于那些使用NTLM进行身份验证的网络代理环境&#xff08;即设置上除需要代理主机和端口之外还需要提供域用户和密码&#xff09;来说&#xff0c;通过代理上网是一件头痛的事情&#xff0c;这主要是因为很多软件不支持N…

vim插件之cscope的安装与配置

本文参考自&#xff1a; http://easwy.com/blog/archives/advanced-vim-skills-cscope/ http://blog.csdn.net/dengxiayehu/article/details/6330200 http://blog.csdn.net/daofengdeba/article/details/7606616 插件介绍&#xff1a; cscope是用来查看源代码的工具&#xff0c…

字符串编辑距离(转载)

Levenshtein Distance (LD, 来文史特距离)也叫edit distance(编辑距离)&#xff0c;它用来表示2个字符串的相似度&#xff0c;LD定义为需要最少多少步基本操作才能让2个字符串相等&#xff0c;基本操作包含3个&#xff1a;插入, 删除, 替换&#xff1b;比如&#xff0c;kiteen和…

css媒体查询(手机、平板、PC)

List item css媒体查询PC端按屏幕尺寸整理? 通过上面的电脑屏蔽及尺寸的例表上我们得到了几个宽度 1024 1280 1366 1440 1680 1920 超小屏幕 手机 (<768px) 小屏幕 平板 (≥768px) 中等屏幕 桌面显示器(≥992px) 大屏幕 大桌面显示器 (≥1200px) /* 超小屏幕&#xff08…

C/C++面试题(一)

1、局部变量能否和全局变量重名&#xff1f;答&#xff1a;能&#xff0c;局部会屏蔽全局。局部变量可以与全局变量同名&#xff0c;在函数内引用这个变量时&#xff0c;会用到同名的局部变量&#xff0c;而不会用到全局变量。对于有些编译器而言&#xff0c;在同一个函数内可以…

读书摘录(二)

人们只能听到自己喜欢听的&#xff0c;只能看到自己喜欢看的。博弈论中的一个关键教训&#xff1a;你需要了解对方的想法。你需要考虑他们知道些什么&#xff0c;是什么在激励着他们&#xff0c;甚至他们是怎么看你的。无论你多努力&#xff0c;你都很有可能完全没有机会做到富…