`
dogasshole
  • 浏览: 843242 次
文章分类
社区版块
存档分类
最新评论

http://poj.org/problem?id=2965

 
阅读更多
Description

The game “The Pilots Brothers: following the stripy elephant” has a quest where a player needs to open a refrigerator.

There are 16 handles on the refrigerator door. Every handle can be in one of two states: open or closed. The refrigerator is open only when all handles are open. The handles are represented as a matrix 4х4. You can change the state of a handle in any location [i, j] (1 ≤ i, j ≤ 4). However, this also changes states of all handles in row i and all handles in column j.

The task is to determine the minimum number of handle switching necessary to open the refrigerator.

Input

The input contains four lines. Each of the four lines contains four characters describing the initial state of appropriate handles. A symbol “+” means that the handle is in closed state, whereas the symbol “−” means “open”. At least one of the handles is initially closed.

Output

The first line of the input contains N – the minimum number of switching. The rest N lines describe switching sequence. Each of the lines contains a row number and a column number of the matrix separated by one or more spaces. If there are several solutions, you may give any one of them.

Sample Input

-+--
----
----
-+--
Sample Output

6
1 1
1 3
1 4
4 1
4 3

4 4

这道题本以为用位运算和BFS就可以搞定的。。。但是先是WA几次,然后就是RTE,,,那个杯具啊,,,最后看到一位大牛的总结,结论是如果按题目的规则,进行操作,在把+变成-的情况下,不改变其他原来的状态,只需把当前为+的位置handle7次该+号所在行列的其他元素handle6次,其他元素handle4次即可,根据这一结论,给出高效算法,就是把+号所在的行和列的位置自增一次,最后遍历该数组,找出为奇数的位置,则为要操作的位置,而所有为奇数之和则为需要操作的次数。

代码:



分享到:
评论

相关推荐

    POJ3414-Pots

    北大POJ3414-Pots 解题报告+AC代码

    poj3045源码

    poj3045的源码,很久以前写的,语言是C++

    poj2820.rar_poj2820

    poj 2820 古代密码 http://poj.grids.cn/problem?id=2820 可直接运行

    poj2880.rar_40

    poj2880 输入一个英文句子,长度不超过40个字符。编写程序,输出句子中最长的一个单词。 http://poj.grids.cn/problem?id=2880 可直接运行

    poj2774.rar_poj_木材计算

    http://poj.grids.cn/problem?id=2774 POJ 2774 木棒加工 木材厂有一些原木,现在想把这些木头切割成一些长度相同的小段木头,需要得到的小段的数目是给定了。当然,我们希望得到的小段越长越好,你的任务是计算能够...

    POJ2773_采药_背包_动态规划

    经典的0-1背包问题. 适合新手学习. 原题网址:http://poj.grids.cn/problem?id=2773

    poj1691解题报告

    poj1691解题报告 题目来源:http://acm.pku.edu.cn/JudgeOnline/showproblem?problem_id=1691(POJ No.1691) 解法: 搜索

    并查集板子加例题

    //http://poj.org/problem?id=1611 #include using namespace std; const int maxn = 30010; int f[maxn],num[maxn],n,m; int find(int x) { return f[x] == x ? x : f[x] = find(f[x]); } int main() { while(cin...

    全国软件设计大赛测试题目.doc

    如输入数据为 3 11011000 输出为 IIIBIFFIBFBBBFF 第4题(http://poj.org/problem?id=1050) To the Max Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 25250 Accepted: 13051 Description Given a ...

    leetcode中国-ACM-Learning:ACM竞赛中关于算法的代码

    POJ problems ID Problem C++ 1001 1002 1003 1004 1006 1007 专题分类 (一)简单搜索 ID Problem C++ Source 1 HDU 2553 (精简版) 2 HDU 1312 3 POJ 3984 4 POJ 2251 5 POJ 3278 6 POJ 3279 7 ZOJ 1002 8 POJ 1321 9...

    leetcode中国-Homo-sapiens-ACM-Learning:智人-ACM-学习

    POJ problems ID Problem C++ 1001 1002 1003 1004 1006 1007 专题分类 (一)简单搜索 ID Problem C++ Source 1 HDU 2553 (精简版) 2 HDU 1312 3 POJ 3984 4 POJ 2251 5 POJ 3278 6 POJ 3279 7 ZOJ 1002 8 POJ 1321 9...

Global site tag (gtag.js) - Google Analytics