当前位置:首页 > 题解目录 > 正文内容

【题解】周末舞会

亿万年的星光4年前 (2021-11-20)题解目录6265

【题目描述】

假设在周末舞会上,男士们和女士们进入舞厅时,各自排成一队。跳舞开始时,依次从男队和女队的队头上各出一人配成舞伴。规定每个舞曲能有一对跳舞者。若两队初始人数不相同,则较长的那一队中未配对者等待下一轮舞曲。现要求写一个程序,模拟上述舞伴配对问题。

【输入描述】

第一行两队的人数。

第二行舞曲是数目。

【输出描述】

配对情况。

【样例输入】

4 6
7

【样例输出】

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

【题目分析】



【参考答案】

#include<bits/stdc++.h>
using namespace std;
const int N=101;
int a[N],b[N];
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;
 
    int k,k1=1;
    int r1=m,r2=n;
    int f1=1,f2=1;
 
    cin>>k;
    while(k1<=k)
    {
        cout<<a[f1]<<" "<<b[f2]<<endl;
 
        r1++;
        r2++;
 
        a[r1]=a[f1];
        b[r2]=b[f2];
 
        f1++;
        f2++;
 
        k1++;
    }
    return 0;
}


如果使用队列

#include <iostream>
#include <queue>
using namespace std;

int main() {
    int m, n, k;
    cin >> m >> n >> k;

    queue<int> male, female;

    // 初始化男队和女队
    for (int i = 1; i <= m; i++) {
        male.push(i);
    }
    for (int i = 1; i <= n; i++) {
        female.push(i);
    }

    // 模拟 k 首舞曲
    for (int i = 0; i < k; i++) {
        int man = male.front();
        int woman = female.front();
        male.pop();
        female.pop();

        // 输出配对
        cout << man << " " << woman << endl;

        // 重新排到队尾
        male.push(man);
        female.push(woman);
    }

    return 0;
}


扫描二维码推送至手机访问。

版权声明:本文由青少年编程知识记录发布,如需转载请注明出处。

分享给朋友:

相关文章

最大数max

【题目描述】已知:m=max(a,b,c)max(a+b,b,c)×max(a,b,b+c)m=max(a,b,c)max(a+b,b,c)×max(a,b,b+c)输入a,b,c,求m。把求三个数的...

字符串反连接

【题目描述】写一函数,使输入的一个字符串按反序存放,在主函数中输入并输出反序后的字符串(不包含空格)。【输入描述】一行字符【输出描述】逆序后的字符串【样例输入】123456abcdef【样例输出】fe...

【题解】2002-T2 选数

【题解】2002-T2 选数

【题目描述】已知n个整数x1,x2,……xn,以及一个整数K(K<n)。从n个整数中任选k个整数相加,可分别 得到一系列的和。例如当n=4, =3, 4个整数分别为3,7,12,1...

【题解】最低通行费

【题目描述】一个商人穿过一个N×N的正方形的网格,去参加一个非常重要的商务活动。他要从网格的左上角进,右下角出。每穿越中间1个小方格,都要花费1个单位时间。商人必须在(2N-1)个单位时间穿越出去。而...

【循环】日记第几天

【题目描述】小明每天都坚持写日记,突然有一天小明在想,我今年写了多少篇日记了?一篇一篇的数好麻烦,没办法小明只能把这个艰难的问题交给聪明的你来解决。【输入描述】输入三个整数�y,m,d分别表示年月日,...

2020CSPJ-直播获奖

【题目描述】NOI2130 即将举行。为了增加观赏性,CCF 决定逐一评出每个选手的成绩,并直播即时的获奖分数线。本次竞赛的获奖率为w%,即当前排名前 w% 的选手的最低成绩就是即时的分数线...