本蒟蒻的第十篇题解,望大家多多见谅!
P
a
r
t
Part
Part
1
1
1 读题
题目描述:
假设在周末舞会上,男士们和女士们进入舞厅时,各自排成一队。跳舞开始时,依次从男队和女队的队头上各出一人配成舞伴。规定每个舞曲能有一对跳舞者。若两队初始人数不相同,则较长的那一队中未配对者等待下一轮舞曲。现要求写一个程序,模拟上述舞伴配对问题。
输入格式:
第一行两个正整数,
m
m
m表示男士人数,
n
n
n表示女士的人数(
1
≤
m
,
n
≤
1000
1≤m,n≤1000
1≤m,n≤1000);
第二行一个正整数,表示舞曲的数目
k
k
k,
k
≤
1000
k≤1000
k≤1000。
输出格式:
输出共
k
k
k行,每行两个整数,之间用一个空格隔开,表示配对舞伴的序号,男士在前,女士在后。
输入样例:
2 4
6
输出样例:
1 1
2 2
1 3
2 4
1 1
2 2
P a r t Part Part 2 2 2 思路
我们要设两个队列,分别存 m m m和 n n n的值,一一对应匹配。
P a r t Part Part 3 3 3 代码
队列:
#include<bits/stdc++.h>
using namespace std;
int a[10001],b[10001],k,i,f1=1,r1,f2=1,r2;
int main(){
int m,n;
cin>>m>>n;
for(int i=1;i<=m;i++) a[i]=i;
for(int i=1;i<=n;i++) b[i]=i;
cin>>k;
r1=m;
r2=n;
for(int i=1;i<=k;i++){
if(f1==r1+1)f1=1;
if(f2==r2+1)f2=1;
cout<<a[f1]<<" "<<b[f2]<<endl;
f1++;
f2++;
}
return 0;
}
P a r t Part Part 4 4 4 总结
本题考查:
队列的使用以及匹配。
看完题解后,会不会感到很简单呢?赶快去试试吧!