POJ 1830 開關問題

2022-05-10 05:53:16 字數 607 閱讀 4707

首先想到狀壓搜尋,但是會t

然後我們考慮到乙個開關的最後狀態,與它的開始狀態與所有與它有關操作的異或和有關

因為每個開關只能操作一次,我們可以把每個開關看作是乙個元,這些元之間用異或關係連線起來

#include #include #include #include #include #include using namespace std;

int t, a[100], n;

int main()

for(int i = 1; i <= n; i++)

int x, y;

while(cin >> x >> y)

int ans = 1;

for(int i = 1; i <= n; i++)

if(!a[i])

if(a[i] == 1)

for(int k = n; k; k--)

break;}}

} if(!ans) printf("oh,it's impossible~!!\n");

else cout << ans << endl;

} return 0;

}

POJ1830 開關問題

中文題目,就不說題目大意了 解題思路 由於對於每乙個開關最多改變一次,那麼對於每乙個開關,只有改變與不改變兩種操作,設改變操作為1,不改變操作為0,那麼對開關的操作可以用乙個n維向量x t x 1,x2 x n 其中xi 0或者 1 我們需要知道初始狀態經過某次操作之後的狀態,並拿它與目標狀態比較。...

開關問題 POJ 1830

題意 燈泡對應開關,有些開關的撥動會影響其他的開關,給出燈泡初始狀態,給出燈泡結束狀態,問有幾種操作可以完成 思路 建立矩陣,消元後有n個自由變元,答案就是2 n個 include include include includeusing namespace std const int maxn 5...

POJ 1830 開關問題

前述 今天又領略了被假模版坑的心痛,基本都在調 由於被問及相關poj 1222的異或方程組的相關問題,我總算是知道了昨天那個博主為什麼理解了兩天了.原來poj 1222的相關題解都是用矩陣講的異或方程組,講的賊煩,而我正好找了乙個類似卻又不存在的題目,用他的 a了這個poj 1222,渾然不知有這等...