有n盞燈,編號為1~n。第1個人把所有燈開啟,第2個人按下所有編號為2的倍數的開關(這些燈將被關掉),第2個人按下所有的編號為3的倍數的開關(其中關掉的燈將被開啟,開著的燈將被關閉),以此類推。一共有k個人,問最後有哪些燈開著?輸入n和k,輸出開著的燈編號。k ≤ n ≤ 1000。
樣例輸入:7 3
樣例輸出:1 5 6 7
#include
#define maxn 1000+10
using
namespace
std;
int a[maxn];
int main()
}cout
<< endl;
return
0;}
說明:
memset()函式的作用是將陣列a複製為0,標誌變數first控制輸出空格。
**參考《演算法競賽入門經典_劉汝佳著》**
用Lua編寫ACM演算法競賽開燈問題
有n盞燈,編號為1 n。第乙個人把所有燈開啟,第二個人按下所有編號為2的倍數的開關 這些燈將被關掉 第三個人按下所有編號為3的倍數的開關 其中關掉的燈將被開啟,開著的燈將被關閉 依此類推。一共有k個人,問最後有哪些燈開著?輸入n和k,輸出開著的燈的編號。k n 1000。function func ...
開燈演算法問題
大廳裡有100盞燈,每盞燈都編了號碼,分別為1 100。每盞燈由乙個開關來控制。開關按一下,燈亮,再按一下燈滅。開關的編號與被控制的燈相同。開始時,燈是全滅的。現在按照以下規則按動開關。第一次,將所有的燈點亮。第二次,將所有2的倍數的開關按一下。第三次,將所有3的倍數的開關按一下。以此類推。第n次,...
演算法競賽,第三章,開燈問題
開燈問題 描述 有 n 盞燈,編號為 1 n,第 1 個人把所有燈開啟,第 2 個人按下所有編號為 2 的倍數的開關 這些燈將被關掉 第 3 個人按下所有編號為 3 的倍數的開關 其中關掉的燈將被開啟,開著的燈將被關閉 依此類推。一共有 k 個人,問最後有哪些燈開著?輸入 n 和 k,輸出開著的燈編...