2012年3月17日

poj 1681 Painter's Problem

摘要: /* 题意:类似于poj 1222 EXTENDED LIGHTS OUT ,只不过换成了格子是黄色(0)还是白色(1), 要求输出最小次数,并且不保证有唯一解。所以如果方程组 (1)无解,输出"inf" (2)有唯一解,当然输出唯 一解; (3)无穷解:需要枚举自由元的状态,即如果有两个自由元我们需要枚举 (1<<2) 个状态,再比较得出最小的次数 但本题数据较水,不需枚举,每次将自由变量置为0一样可以过. 而且因为x[]初始化为0,所以直接对x[i]=1进行计数就好了*/#include <iostream> //高斯消元#include < 阅读全文

posted @ 2012-03-17 14:29 sysu_mjc 阅读(268) 评论(0) 推荐(0) 编辑

poj 1830 开关问题

摘要: // 题意:给出n盏灯的初始状态以及最终状态,和改变哪些灯的状态会影响哪些灯的关系,// 求使初始状态变换到最终状态的方法总数。// 思路: 把开关是否按下看做一未知元,由每个开关的状态是否需要改变可以列出n个方程,// 可通过高斯消元解方程组。由于题目求的是方法总数,而每一个自由变元(灯)只有两种状态,即开或关,// 所以k个自由变元的方法总数就为2^k#include <iostream>#include <cstring>using namespace std;#define MAXN 29int equ, var, n;int a[MAXN][MAXN];int 阅读全文

posted @ 2012-03-17 13:29 sysu_mjc 阅读(141) 评论(0) 推荐(0) 编辑

poj 1222 EXTENDED LIGHTS OUT

摘要: /* 题意:对于一个5*6的格子,每个格子表示一个灯,每次按下一个按钮,这个按钮和它的上下左右相邻按钮将同时切换各自的亮灭状态, 给定初始状态,问怎么按才能使所有的灯全灭,0表示灯灭,1表示灯亮 注意到每个灯至多只按一次,而按的顺序不影响结果,题目保证有解, 把[i][j]投影到[i*6+j],数组a,x的下标从0开始,线性方程组如下: a(0,0) * x0 + a(0,1) * x1 +...+ a(0,29) * x29 = b0 = a(0,30) a(1,0) * x0 + a(1,1) * x1 +...+ a(1,29) * x29 = b1 = a(1,30) a(2,0) . 阅读全文

posted @ 2012-03-17 09:41 sysu_mjc 阅读(308) 评论(0) 推荐(0) 编辑

导航