報數 解題報告

2022-06-01 14:48:12 字數 805 閱讀 9396

題目如下

通過審題首先思考需要的東西:

1用來遍歷這些人的工具變數i;

因為不只要遍歷一遍,而是一遍一遍地遍歷,所以到頭了要重頭開始再來遍歷

如下

2迴圈肯定要用,迴圈結束條件就是,要記錄出去的人數變數outer,報出去乙個人就outer++如果出去的人數到達了總人數,那麼迴圈結束(作為迴圈結束的條件)

3需要乙個計數器變數count 這個計數器只會在報的數裡面變化,比如要報到3就退出圈,那麼計數器只會123123地變化

4.記錄這些人出去的輪數的工具變數lun,當報到指定的數字的時候,那個人出去,並且輪數lun++

5.定義乙個陣列a[maxn],陣列裡面格仔的值來記錄這個數是不是出去過,

如下如果這個人出去過,那麼就當然不用報數計數器count 也自然不用count++

思考完需要的東西後,流程圖如下

遇到的問題:

1.當遍歷工具i超過了總人數,但是他需要一遍一遍地遍歷這些人怎麼辦?

2迴圈跳出的條件怎麼設定?

3這麼記錄這些人有沒有出去過?出去過的人不再參與報數,怎麼實現?

4怎麼讓這些人從1到指定的數不斷報數下去?

解決方法上文均提到

pku 3750 小孩報數問題 解題報告

小孩報數問題 time limit 1000ms memory limit 65536k total submissions 3376 accepted 1597 description 有n個小孩圍成一圈,給他們從1開始依次編號,現指定從第w個開始報數,報到第s個時,該小孩出列,然後從下乙個小孩開...

Block Voting 解題報告

這道題做的有點狼狽,效率不高,差一點就tle的ac了。看status裡的,ac的時間大多數都是0ms的。肯定有乙個更有效率的演算法的。下面說下我的狼狽演算法。出處 http acm.jlu.edu.cn joj showproblem.php?pid 1223 問題描述 求每個party的權值。第i...

Safebreaker 解題報告

又是吉林大學一道acm題目,題目很簡單,直接暴力解決。出處 http acm.jlu.edu.cn joj showproblem.php?pid 1718 問題描述 對乙個給定數0000 9999 根據一系列猜測,判斷這個數是否存在,存在的話,是否唯一 例如 3321,給定數 作出猜測,1223 ...