POJ 1222 開關問題

2021-10-23 02:01:37 字數 1165 閱讀 7978

題意

傳送門 poj 1222

題解列舉第一行的開關是否翻轉的狀態,此時決定 l0j

l_l0

j​的狀態的只有 l1j

l_l1

j​乙個開關,依次類推可以求出所有的開關翻轉狀態。對於列舉的每乙個狀態,判斷最後一行是否全零即可判斷該方案是否可行。

#include

#include

#include

#include

#include

#include

#define min(a,b) (((a) < (b)) ? (a) : (b))

#define max(a,b) (((a) > (b)) ? (a) : (b))

#define abs(x) ((x) < 0 ? -(x) : (x))

#define inf 0x3f3f3f3f

#define delta 0.85

#define eps 1e-5

#define pi 3.14159265358979323846

#define max_n 20

using

namespace std;

const

int dx[5]

=;const

int dy[5]

=;const

int r =

5, c =6;

int l[r]

[c];

int flip[r]

[c];

// 求 (x, y) 位置開關狀態

intget

(int x,

int y)

}return s;

}int

main()

}// 列舉第一行所有狀態

for(

int i =

0; i <

1<< c; i++)}

int s =0;

for(

int y =

0; y < c; y++

) s |

=get

(r -

1, y);if

(s ==0)

}break;}

}}return0;

}

poj1222開關問題, 高斯消元

題意 給個5x6的矩陣,只有0和1 然後叫你將1全部翻成0 理解 直接就是開關問題啦.列舉第一行的情況,推出所有.不過我自己竟然沒考慮到0的情況.看討論說可以用高斯消元法做 但我並不會.得學習下 看了大神的 發現高斯消元有點麻煩 它是根據某座標與其他座標的關係來列方程 共30個方程,30個未知數.然...

POJ1222熄燈問題

問題描述 程式 思路1 列舉所有可能的開關狀態,對每個狀態計算下最後燈的情況,看是否都熄滅 每種按鈕有兩種狀態,一共有30個開關,那麼狀態數是2的30次方,太多不可取 思路2 如何減少列舉的數目呢?如果存在某個區域性,一旦這個區域性狀態被確定後,那麼剩餘其他部分的狀態只能 是確定的一種或者不多的n種...

POJ 1222 開關問題高斯消元法

乙個01矩陣,表示燈的亮滅狀態,每次操作可以改變乙個十字形狀內的五個燈的狀態。問能否將所有燈熄滅。最後輸出開關的狀態。思路 開燈關燈問題,5 6的燈陣,將每乙個位置上開關狀態看做乙個變元,30個變元,而對於30個位置的燈的狀態當成開關狀態的解,列出30個異或方程,高斯消元解方程即可 增廣矩陣 對於每...