題解鏈結
題解:跟poj的1753類似(不過需要將結果儲存下來
這裡的列舉只需要列舉第一行即可,然後每次後面的列舉都需要根據前一行來進行判斷是否需要按燈
注意:按乙個燈會改變周圍的狀態,但是注意此時只按了這乙個燈,周圍只是改變狀態並沒有按燈
每次從第二列開始判斷改變時,注意儲存狀態,每次如果此時的第一行不能滿足全部熄滅的狀態的話,要返回之前儲存
#include #include using namespace std;
int ini[5][6];
bool tmp[5][6];
int result[5][6];
int p[4][2]=,,,};//周圍
bool test()
}return true;
}bool iut(int x,int y)
void set(int x,int y)
else
for(int i=0;i<4;i++)else }}
}bool go()}}
return test();
}bool first(int x)
}for(int i=0;i<5;i++)
}if(go())
else
}for(int i=0;i<5;i++)
}return false;
}}else
return false;
}int main()
}first(0);
for(int i=0;i<5;i++){//列印結果矩陣
for(int j=0;j<6;j++){
cout<
1813 熄燈問題
描述 有乙個由按鈕組成的矩陣,其中每行有6個按鈕,共5行。每個按鈕的位置上有一盞燈。當按下乙個按鈕後,該按鈕以 及周圍位置 上邊 下邊 左邊 右邊 的燈都會改變一次。即,如果燈原來是點亮的,就會被熄滅 如果燈原來是熄 滅的,則會被點亮。在矩陣角上的按鈕改變3盞燈的狀態 在矩陣邊上的按鈕改變4盞燈的狀...
1813 熄燈問題(2 1基本演算法之列舉)
總時間限制 1000ms 記憶體限制 65536kb 描述 有乙個由按鈕組成的矩陣,其中每行有6個按鈕,共5行。每個按鈕的位置上有一盞燈。當按下乙個按鈕後,該按鈕以及周圍位置 上邊 下邊 左邊 右邊 的燈都會改變一次。即,如果燈原來是點亮的,就會被熄滅 如果燈原來是熄滅的,則會被點亮。在矩陣角上的按...
NOI 2 1 1813 熄燈問題 題解 C
不廢話了,直接上題。1813 熄燈問題 總time limit 1000ms memory limit 65536kb description 有乙個由按鈕組成的矩陣,其中每行有6個按鈕,共5行。每個按鈕的位置上有一盞燈。當按下乙個按鈕後,該按鈕以及周圍位置 上邊 下邊 左邊 右邊 的燈都會改變一次...