• 周末舞会


    题目

    试题描述
    假设在周末舞会上,男士们和女士们进入舞厅时,各自排成一队。跳舞开始时,依次从男队和女队的队头上各出一个人配成舞伴。规定每个舞曲只能有一对跳舞者。若两队初始人数不相同,则校长的那一队中未配对者等待下一轮舞曲。现要求写一个程序,模拟上述舞伴配对问题。
    输入
    第1行两个正整数,表示男士人数m和女士人数n;
    1=<m, n=<1000;
    第2行一个正整数,表示舞曲的数目k,k=<1000;
    输出
    共k行,每行2个数,之间用一个空格隔开,表示配对舞伴的序号,男士在前,女士在后。
    输入示例
    2 4
    6
    输出示例
    1 1 
    2 2
    1 3
    2 4
    1 1
    2 2

    分析

    这道题考的是队列的基本应用(不会队列看https://www.cnblogs.com/zxjhaha/p/11069151.html)。一轮循环输出队头也就是跳舞的人,然后放到队尾。循环k轮。

    代码

    #include <bits/stdc++.h>
    using namespace std;
    int main()
    {
    	int m,n,k;
    	cin>>m>>n>>k;
    	queue<int> man;
    	queue<int> women;
    	for(int i=1;i<=m;i++) man.push(i);
    	for(int i=1;i<=n;i++) women.push(i);
    	for(int i=1;i<=k;i++) //循环k轮,也就是k首舞曲。
    	{
    		cout<<man.front()<<" "<<women.front()<<endl; //输出队头,也就是跳舞的人。
    		int tmpm=man.front(); //记录队头。
    		int tmpw=women.front(); //同上。
    		man.pop(); //出队。
    		women.pop(); //同上。
    		man.push(tmpm); //使刚才的队头到队尾。
    		women.push(tmpw); //同上。
    	}
    	return 0;
    } 
    

      

  • 相关阅读:
    hdu-1114
    hdu2546
    POJ-3126
    POJ-1915
    ZOJ-1709
    Codeforces 847H
    Codeforces 847C
    Codeforces 847I
    Codeforces 847E
    算法笔记--矩阵及矩阵快速幂
  • 原文地址:https://www.cnblogs.com/zxjhaha/p/11069210.html
Copyright © 2020-2023  润新知