poj 1218 經典開關問題,模擬

2021-09-06 05:19:30 字數 497 閱讀 3575

經典開關問題:

大概意思如下:乙個監獄看守員喝醉了酒,於是把監獄每扇門都開啟(假設有n扇門);然後再從1號門開始,隔一扇關乙個門(把2的倍數的門關掉);接著再從1號門開始,隔2扇操作乙個門(操作3的倍數的門,原來是開的關掉,關著的則開啟)。這樣一直操作到n的倍數,問最後有多少扇門是開啟的。

這個也可以叫關燈問題:有n個燈,分別由n個開關控制,撥一下開關則可以改變燈的狀態(開->關 關->開)。初始狀態燈都是關著的,先把每個開關都撥一下,然後撥一下2的倍數的開關,接著3的倍數,直到n的倍數,問最後有多少燈是開著的。

模擬:

1 #include2 #include3 #include4

using

namespace

std;

5int

main()622

}23int k=0;24

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

2528 cout30return0;

31 }

POJ3279 經典開關問題)

解題思路 如果列舉每乙個格仔的開關,複雜度為o 2 mn 這會超時。但觀察規律可知,只要第一行的開關狀態確定,後面的狀態也都確定了。由此列舉第一行的開關狀態即可。這樣複雜度變為o mn2 n include include include define inf 0x3f3f3f3f using na...

POJ 開關問題

挑戰p153 題意 有乙個m n的格仔,每個格仔有兩種顏色,每個格仔可以翻轉,每翻轉乙個格仔它以及其上下左右四個格仔都會變為它相反的狀態,問最少反轉哪些格仔可以把這些格仔都變成相同的狀態,解有多個時,輸出字典序最小的乙個 經典的開關問題,只要第一行的狀態確定其他行的狀態也將確定,故暴力列舉第一行的開...

poj 3276 反轉開關問題 一 DP 模擬

sample input 7bb fbfb b sample output 3 3 窮舉肯定是要超時的 2 n個狀態.但是先思考一些規律吧 1 轉動奇數次,必然與初始方向相反 2 轉動偶數次,必然與初始方向相同 列舉k 1 n,得到o n 3 的 這個 會超時,只是模擬而已 tle o n 3 in...