1. 程式人生 > >1332:【例2-1】周末舞會

1332:【例2-1】周末舞會

print namespace i++ std 周末 結束 c++ tro 基礎

【題目描述】

假設在周末舞會上,男士們和女士們進入舞廳時,各自排成一隊。跳舞開始時,依次從男隊和女隊的隊頭上各出一人配成舞伴。規定每個舞曲能有一對跳舞者。若兩隊初始人數不相同,則較長的那一隊中未配對者等待下一輪舞曲。現要求寫一個程序,模擬上述舞伴配對問題。

【輸入】

第一行兩隊的人數;

第二行舞曲的數目。

【輸出】

配對情況。

【輸入樣例】

4 6
7

【輸出樣例】

1 1
2 2
3 3
4 4
1 5
2 6
3 1





眾所周知:這個題是白書上最基礎的隊列模擬題;
關鍵在於掌握隊頭,隊尾就行了;

代碼如下

#include<bits/stdc++.h>
using
namespace std; int man[10000],girl[10000],t1=1,t2=1,w1,w2,k1,k,m,w; int main() { cin>>m>>w>>k; for(int i=1;i<=m;i++) man[i]=i; for(int i=1;i<=w;i++) girl[i]=i; w1=m;w2=w; while(k1<k)//k1是當前一輪,k是總曲目 { printf("%d %d\n
",man[t1],girl[t2]);//輸出隊頭兩個元素 w1++;man[w1]=man[t1];t1++;//人數可能不相等,當他們跳完之後補到隊尾,頭++,繼續下一個曲子,直到結束 w2++;girl[w2]=girl[t2];t2++;//這是女生隊,和男生隊一個情況 k1++;//下一輪了 } return 0; }

o ……k!

1332:【例2-1】周末舞會