題目鏈結:
題目大意:一堆開關,或開或關。每個開關按下後,周圍4個方向開關反轉。問使最後所有開關都關閉的,開關按法。0表示不按,1表示按。
解題思路:
一共只有5*6個開關。
對於每個開關,設其最終狀態為x5,上下左右四個開關最終狀態分別為x1,x2,x3,x4,
那麼有方程x1^x2^x3^x4^x5^初始狀態=0。
這樣就有30個方程。解這30個線性方程組即可。
用高斯消元法來解方程組,變化如下:
①對於原本找列中絕對值最大這一步,可以簡化成找第乙個為1的k,因為係數矩陣不是0就是1,最大就是1。
②原本的+號現在變成^號。
這裡推薦一下cxlove
神牛的簡潔寫法,他把col和row合二而一,又將解向量和係數矩陣合二為一,非常吊。
#include "cstdio
"#include
"iostream
"using
namespace
std;
int ratio[31][31],dir[5][2]=;
void
reset()
}void
guess()
}}int
main()
}}
13596495
neopenx
1222
accepted
160k
0msc++
1186b
2014-11-04 00:51:23
poj1222開關問題, 高斯消元
題意 給個5x6的矩陣,只有0和1 然後叫你將1全部翻成0 理解 直接就是開關問題啦.列舉第一行的情況,推出所有.不過我自己竟然沒考慮到0的情況.看討論說可以用高斯消元法做 但我並不會.得學習下 看了大神的 發現高斯消元有點麻煩 它是根據某座標與其他座標的關係來列方程 共30個方程,30個未知數.然...
POJ 1222 開關問題高斯消元法
乙個01矩陣,表示燈的亮滅狀態,每次操作可以改變乙個十字形狀內的五個燈的狀態。問能否將所有燈熄滅。最後輸出開關的狀態。思路 開燈關燈問題,5 6的燈陣,將每乙個位置上開關狀態看做乙個變元,30個變元,而對於30個位置的燈的狀態當成開關狀態的解,列出30個異或方程,高斯消元解方程即可 增廣矩陣 對於每...
poj 1222 (高斯消元)
1 高斯消元法求解 適用於01方矩陣的問題,不適用在解線性方程組中 首先介紹一下怎樣用高斯消元法解題!這個遊戲的名字叫做lights out。乙個板子上面有mxn個按鈕,按鈕也是燈。每次按下乙個按鈕,這個按鈕和它的上下左右相鄰按鈕將同時切換各自的亮滅狀態。給你乙個初始狀態,請給出一種方法,按某些按鈕...