Poj 1222 高斯消元

2021-07-11 05:24:07 字數 1053 閱讀 9486

校賽預選卡了一道高斯消元的題,找到資料學習了下,a個模板題熟練熟練。寫錯乙個數字坑了好久,悲催。

題意:給定5*6的燈陣,0為關1為開,每次開關(x,y)會同時開關(x-1,y)(x+1,y)(x,y-1)(x,y+1)四燈(出界不予討論即可),給定初始燈陣,求使所有燈都關閉的開燈方法。

分析:從上往下從左往右計數,第i個燈的開關情況記為ai,ai=0不動,ai=1開一次。每個燈的最終狀態由它和它周圍的燈開關狀態確定。

對每個燈建立30元一次異或方程;

例如:

0 1 1 0 1 0

1 0 0 1 1 1

0 0 1 0 0 1

1 0 0 1 0 1

0 1 1 1 0 0

第1個方程為a1^a2^a7=0

第2個方程為a1^a2^a3^a8=1

以此類推建立30元1次異或方程組,解之即可。

解方程用高斯消元,不多說上**。

#include 

#include

using namespace std;

int jz[31][32];

void swap(int a,int b)

return;

}int main()

/*for(int

x=1;x

<=30;x++)

printf("\n");*/

for(int

x=1;x

<=30;x++)

}if(!ok)continue;

swap(x,po);

for(int x1=1;x1<=30;x1++)}}

/*for(int

x=1;x

<=30;x++)

*/printf("puzzle #%d\n",i);

for(int

x=1;x

<=5;x++)

printf("%d\n",jz[6

*x][31]);

}

}return

0;}

poj 1222 (高斯消元)

1 高斯消元法求解 適用於01方矩陣的問題,不適用在解線性方程組中 首先介紹一下怎樣用高斯消元法解題!這個遊戲的名字叫做lights out。乙個板子上面有mxn個按鈕,按鈕也是燈。每次按下乙個按鈕,這個按鈕和它的上下左右相鄰按鈕將同時切換各自的亮滅狀態。給你乙個初始狀態,請給出一種方法,按某些按鈕...

poj 1222 高斯消元

第一次寫高斯消元 題意很簡單 就是是全部燈變暗,一盞燈開關會使周圍的燈變化,初始狀態給了。每盞燈就是乙個x a就是相關關係 就是求 ax b 的解 自己寫的模版有點搓,可以去別的文章去看看 優美點的 include include include include include using name...

高斯消元 poj 1222

高斯消元求唯一解集x 關鍵是初始化構造係數矩陣,有了增廣矩陣套模板即可 poj 1222 高斯消元 題意 類似於翻轉棋,按一下上下中左右翻轉,給定初始狀態,問回到全0的狀態的按鍵方案 思路 對於每個位置,倒著想,初始為0,上下中左右加起來為初始狀態,每乙個位置皆如此。30個位置,30個變數,30個方...