算典04 例題 03

2021-07-28 01:37:40 字數 777 閱讀 3932

n(n<20)個人站成一圈,逆時針編號為1~n。有兩個**,a從1開始逆時針數,b從n開始順時針數。在每一輪中,**a數k個就停下來,**b數m個就停下來(注意有可能兩個**停在同乙個人上)。接下來被**選中的人(1個或者2個)離開隊伍。

輸入n,k,m輸出每輪裡被選中的人的編號(如果有兩個人,先輸出被a選中的)。例如,n=10,k=4,m=3,輸出為4 8, 9 5, 3 1, 2 6, 10, 7。注意:輸出的每個數應當恰好佔列。

圓環的話自然要取模了,然後模擬選取的過程即可,注意使用乙個標記陣列標記哪些已經出隊。

#include 

#include

#include

#include

using

namespace

std;

const

int maxn = 1e2 + 5;

#define met(a, b) memset(a, b, sizeof(a));

int n, m, k;

bool vis[maxn];

int main()

--ret; printf("%3d", a);

for(int i = 0; i < k;)

if(b != a) --ret, printf("%3d", b);

if(ret > 0) printf(","); vis[a] = vis[b] = 1;

}printf("\n");

}return

0;}

算典05 例題 04

輸入一些單詞區 分大小寫 如果某個單詞與其他任何單詞沒有聯絡,則輸入這個單詞。兩個單詞有聯絡的意思是忽略他們的大小寫之後和字母的順序,所有的字母出現的次數都相等,如dog 和god 要求結果按字典序輸出 stl入門水題。使用兩個string陣列記錄輸入的單詞和處理後的單詞,處理後的意思即為都轉為小寫...

算典05 例題 06

有t個團隊正在排乙個長隊,每次新來乙個人,如果他有隊友在排隊,他就會插到最後乙個隊友的後面,否則他就會排到隊尾 對於每個出隊操作,輸出出隊的隊員編號 stl水題。練習使用佇列queue 這裡用兩個佇列,乙個記錄每個隊的排隊情況,乙個記錄長隊中排隊的團隊編號 include include inclu...

算典04 習題 08

課堂上有n個學生 n 10 每個學生都有乙個 睡眠 清醒 週期,其中第i個學生醒ai 分鐘後睡bi 分鐘,然後重複 1 ai bi 5 初始時第i個學生處在他的週期的第ci 分鐘。每個學生在臨睡前會察看全班睡覺人數是否嚴格大於清醒人數,只有這個條件滿足時才睡覺,否則就堅持聽課ai 分鐘後再次檢查這個...