【部分枚举】【3-21个人赛】ProblemH
Problem H
Time Limit : 3000/1000ms (Java/Other) Memory Limit : 65535/32768K (Java/Other)
Total Submission(s) : 77 Accepted Submission(s) : 27
Font: Times New Roman | Verdana | Georgia
Font Size: ← →
Problem Description
爱情公寓是一个情侣们都向往的地方,导致现在整幢公寓都已经住满了人。公寓一共有n(3<=n<=100)层,每层有m(3<=m<=6)个房间,从外面看上去就是一个n*m的网格。每当傍晚降临,家家户户都要开灯,用灯泡照亮他们美好的未来。可惜的是灯泡也有傲娇的时候,尤其是看到这么多情侣,所以只有一部分的房间的灯被打开了,还有一部分的灯无论房间的开关怎么动都是暗的。这个时候,身为ACMer的你勇敢的hack进了公寓的电路系统,发现这里有另外一套开关,它的规则是这样:当你改变[i,j]号灯的状态时,[i,j]上下左右的四个灯(如果有的话)也随之改变状态。改变状态的意思是从开到关,或者从关到开。聪明的你能不能通过一系列的操作使得整幢公寓的灯泡都亮起来呢?
Input
对于每组测试数据,第一行有两个数n和m,描述见上。接下来有n行,每行有m个数,为0或1,0表示灯暗,1表示灯亮。
Output
Sample Input
- 2
- 3 3
- 0 0 0
- 0 1 0
- 0 0 0
- 3 3
- 0 0 0
- 0 0 0
- 0 0 0
Sample Output
- YES
- YES
类似
http://blog.csdn.net/zy691357966/article/details/40082595
代码如下:
- #include <cstdio>
- #include <cstdlib>
- #include <cmath>
- #include <cstring>
- #include <ctime>
- #include <algorithm>
- #include <iostream>
- #include <sstream>
- #include <string>
- #define oo 0x13131313
- using namespace std;
- void init()
- {
- freopen("a.in","r",stdin);
- freopen("a.out","w",stdout);
- }
- int n,m;
- int MAP[105][10];
- int A[105][10];
- int fx[5]={0,0,0,1,-1},fy[5]={0,1,-1,0,0};
- void COPY()
- {
- for(int i=1;i<=n;i++)
- for(int j=1;j<=m;j++)
- {
- A[i][j]=MAP[i][j];
- }
- }
- void CHANGE(int i,int j)
- {
- A[i][j]=A[i][j]^1;
- for(int k=1;k<=4;k++)
- {
- A[i+fx[k]][j+fy[k]]^=1;
- }
- }
- void input()
- {
- cin>>n>>m;
- for(int i=1;i<=n;i++)
- for(int j=1;j<=m;j++)
- {
- scanf("%d",&MAP[i][j]);
- }
- }
- int dfs(int line)
- {
- if(line==n+1) {
- int OK=1;
- for(int i=1;i<=m;i++)
- if(A[line-1][i]==0) OK=0;
- if(OK) return 1;
- else return 0;
- }
- for(int i=1;i<=m;i++)
- {
- if(A[line-1][i]==0) CHANGE(line,i);
- }
- return dfs(line+1);
- }
- void solve()
- {
- int OK=0;
- for(int i=0;i<=(1<<m)-1;i++)
- {
- COPY();
- for(int j=1;j<=m;j++)
- {
- int temp=(i>>(j-1))&1;
- if(temp==1)
- {
- CHANGE(1,j);
- }
- }
- if(dfs(2))
- {
- OK=1;
- break;
- }
- }
- if(OK) printf("YES\n");
- else printf("NO\n");
- }
- int main()
- {
- //init();
- int T;
- cin>>T;
- while(T--)
- {
- input();
- solve();
- }
- }
【部分枚举】【3-21个人赛】ProblemH的更多相关文章
- Object备忘录
1.Object.assign(target,...source) 方法用于将所有可枚举属性的值从一个或多个源对象复制到目标对象.它将返回目标对象. 2.Object.create()方法创建一个新对 ...
- 第8章 自己写库-构建库函数雏形—零死角玩转STM32-F429系列
第8章 自己写库—构建库函数雏形 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.com/fi ...
- 设计模式 UML & java code
A: 创造性模式 1. 工厂方法模式(FactoryMethod) 1.1 类图 1.2 代码1 public interface Pet { public String petSound(); } ...
- (转)数位dp
原博客 https://blog.csdn.net/wust_zzwh/article/details/52100392 建议原博客看到hdu 不要62,然后看我分割线后两道题,然后再回来看原博.-- ...
- 数位dp 简单入门
推荐博客 推荐博客 数位dp是一种计数用的dp,一般就是要统计一个区间[le,ri]内满足一些条件数的个数.所谓数位dp,字面意思就是在数位上进行dp咯.数位还算是比较好听的名字,数位的含义:一个数有 ...
- 数位dp总结 之 从入门到模板
转发自WUST_WenHao巨巨的博客 基础篇 数位dp是一种计数用的dp,一般就是要统计一个区间[le,ri]内满足一些条件数的个数.所谓数位dp,字面意思就是在数位上进行dp咯.数位还算是比较好听 ...
- P2480 [SDOI2010]古代猪文
P2480 [SDOI2010]古代猪文 比较综合的一题 前置:Lucas 定理,crt 求的是: \[g^x\bmod 999911659,\text{其中}x=\sum_{d\mid n}\tbi ...
- 数位dp(贴一个模板=。=)
emmmm,之前看到大佬的博客感觉这个模板挺有用的,就贴了一个= = 然后解释什么的都有了就...... 数位dp一般应用于: 求出在给定区间[A,B]内,符合条件P(i)的数i的个数. 条件P(i) ...
- 掌握数位dp
最近遇到了数位dp题目,于是就屁颠屁颠的跑过来学习数位dp了~ "在信息学竞赛中,有这样一类问题:求给定区间中,满足给定条件的某个D 进制数或此类数的数量.所求的限定条件往往与数位有关,例如 ...
- 【题解】Luogu p2964 BZOJ 2017[Usaco2009 Nov]硬币游戏
题目描述 Farmer John's cows like to play coin games so FJ has invented with a new two-player coin game c ...
随机推荐
- 网站SEO优化中内部链接的优化
重要性:内链有效的优化能够间接的提高某页面的权重达到搜索排名靠前的效果.同时有效的带领搜索引擎蜘蛛对整站进行抓取. 网站头部导航: 这个导航称为'网站主导航',当用户来到网站需要给他们看到的内容.也就 ...
- Android系统Surface机制的SurfaceFlinger服务的启动过程分析
文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/8022957 在前面一篇文章中,我们简要介绍了A ...
- idea maven jetty插件热部署
maven tomcat插件好像无法进行热部署,jetty可以如下配置实现热部署,但是idea无法进行自动编译,所以需要如下快捷键 Ctrl+Shift+F9,编译 Ctrl+F9,生成项目 < ...
- window服务创建
第一步:创建服务 第二步:在Service1.cs视图中 右键 选择”添加安装程序” 这里要注意几个细节 设置上面的属性 这两个分别有属性,具体网上查使用方式 3 实例代码编写 主要下面几个方法 pr ...
- WCF Rest:不使用UriTemplate使用post方式传参解决HTTP400问题以及参数映射问题
在使用POST方式向服务提交数据时,出现HTTP400异常,以下代码描述: 服务接口定义: [OperationContract] [WebInvoke(ResponseFormat = WebMes ...
- [转]用apache反向代理解决单外网ip对应内网多个web主机的问题
用apache反向代理解决单外网ip对应内网多个web主机的问题 转载一个有独立外网IP,需内网服务器对外发布的例子,是应用apache虚拟主机的. 来源地址:http://www.itshantou ...
- iOS 获取系统目录
//获取根目录 NSString *homePath = NSHomeDirectory(); NSLog(@"Home目录:%@",homePath); //获取Document ...
- 消除多余的row
tableviewName.tableFooterView = [[UIView alloc]initWithFrame:CGRectZero];
- Method to fix "Naming information cannot be located because the target principal name is incorrect." for AD replication failure
Assume Failure DC FP01 and Working DC DC01 1. Stop the Key Distribution Center (KDC) service on FP01 ...
- python 和 c# 连接数据库 (Access)
模块pypyodbc 1.3.3下载: https://pypi.python.org/pypi/pypyodbc/ 安装:解压文件找到pypyodbc.py复制到python安装目录Lib文件夹 ...