劉汝佳 開燈問題

2021-08-04 05:24:34 字數 674 閱讀 3144

問題描述:

有n盞燈,編號為1~n,第1個人把所有燈開啟,第2個人按下所有編號為2 的倍數的開關(這些燈將被關掉),第3 個人按下所有編號為3的倍數的開關(其中關掉的燈將被開啟,開著的燈將被關閉),依此類推。一共有k個人,問最後有哪些燈開著?輸入:n和k,輸出開著的燈編號。k≤n≤1000

輸入:

輸入一組資料:n和k

輸出:

輸出開著的燈編號n和k

樣例輸入:

7 3樣例輸出:

1 5思路:

使用迴圈,使用陣列對每次1~n是k的倍數的n進行標記,直到每個人員都都開過燈,對於本題來說,亮點在於 memset函式,相比於for迴圈來說,方便又快捷的使陣列的全部元素為零。【void *memset(void *s, int ch, size_t n);函式解釋:將s中當前位置後面的n個位元組 (typedef unsigned int size_t )用 ch 替換並返回 s 。memset:作用是在一段記憶體塊中填充某個給定的值,它是對較大的結構體或陣列進行清零操作的一種最快方法】

**:

#include#include#define n 50

int main()

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

}printf("\n");

return 0;

}

硬幣問題(劉汝佳266,)

題目描述 硬幣找零問題描述 現存在一堆面值為 v1 v2 v3 個單位的硬幣 問最多和最少需要多少個硬幣才能找出總值為t個單位的零錢?輸入 第一行為n,t,表示硬幣個數,需要湊的面額,第二行有n個數,表示硬幣的面額 輸出 一行,分別為最大最小的數目,用空格分開 示例 輸入 5 63 1 2 5 21...

八皇后問題 紫書(劉汝佳)

解題思路 任意兩個皇后不能出現在同行同列及同對角線,可以直接考慮每一行放乙個皇后,依次往下進行。11 第1行的皇后放在0,1列都會和第0行的皇后攻擊,所以直接到了第2列,當第0和1行這麼放置皇后時,我們發現下一行無論放在哪一列皇后都會相互攻擊,所以此路不通,第1行的i要移動到下乙個列。11 現在我們...

ACM ICPC比賽隨想 劉汝佳

劉汝佳,1982年12月生,畢業於重慶外國語學校,清華大學電腦科學與技術系2005級研 究生。高二時創立 資訊學初學者之家 oibh 高三入選ioi2001國家集訓隊。大學一年級時獲a c m icpc世界總決賽銀牌 世界第四 ioi2002 03 04國家集訓隊指導 老師。曾與黃亮合作出版了 演算...