yr87228755 2022-06-05 20:02 采纳率: 57.1%
浏览 13
已结题

「7-5」E 、发牌者

题目描述
贝西与其他的 N-1 头奶牛围成一圈玩纸牌游戏。已知一副纸牌有 KKN的倍数)张,其中有 K/N张“好牌”。贝茜是游戏的发牌者,发牌规则如下: 1)、贝茜把牌堆的最上面一张发给她右边的奶牛; 2)、每当贝茜发完一张牌,她都得将牌堆顶部 P 张牌放到底部去(一般把这个操作称为切牌); 3)、然后,贝茜对逆时针方向(右手边)的下一头奶牛重复上述的操作。 贝茜想把所有好牌都留给自己,于是她找到了你,希望你能告诉她,将“好牌”放在初始牌堆的哪些位置,才能确保它们在发完牌后全集中到贝茜的手里。 注意:我们把牌堆顶的牌定义为 1号牌,从上往下第二张定义为 2 号牌,依此类推。
输入格式
输入包含 3 个用空格隔开的整数:NK 以及 P
输出格式
一行,包含 M 个整数,表示贝茜应该在初始牌堆的这个位置放一张好牌。所有的位置按升序输出。
样例
输入样例
E.in
3 9 2
输出样例
E.out
3 7 8
数据范围与提示
1 <= N <= 100 N<=K<=100000
  • 写回答

1条回答 默认 最新

  • 吕布辕门 后端领域新星创作者 2022-06-05 20:18
    关注

    跟你运行出来了,麻烦采纳一下,谢谢!

    img

    
    #include<iostream>
    #include<queue>
    #include<algorithm>
    using namespace std;
    int main(){
        int n,k,p,num[1000000],times=0;
        queue<int> que;
        cin>>n>>k>>p;
        for(int i=0;i<k;i++){
            que.push(i+1);
        }
        while(que.size()){
            times++;
            if(times%n==0){
                num[(times-1)/n]=que.front();
            }
            que.pop();
            for(int i=0;i<p;i++){
                que.push(que.front());
                que.pop();
            }
        }
        int l=k/n;
        sort(num,num+l);
        for(int i=0;i<l;i++){
            cout<<num[i]<<" ";
        }
        return 0;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 6月13日
  • 已采纳回答 6月5日
  • 创建了问题 6月5日

悬赏问题

  • ¥15 nginx的使用与作用
  • ¥100 关于#VijeoCitect#的问题,如何解决?(标签-ar|关键词-数据类型)
  • ¥15 一个矿井排水监控系统的plc梯形图,求各程序段都是什么意思
  • ¥15 ensp路由器启动不了一直报#
  • ¥50 安卓10如何在没有root权限的情况下设置开机自动启动指定app?
  • ¥15 ats2837 spi2从机的代码
  • ¥200 wsl2 vllm qwen1.5部署问题
  • ¥100 有偿求数字经济对经贸的影响机制的一个数学模型,弄不出来已经快要碎掉了
  • ¥15 数学建模数学建模需要
  • ¥15 已知许多点位,想通过高斯分布来随机选择固定数量的点位怎么改