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 基于作物生长模型下,有限水资源的最大化粮食产量的资源优化模型建立
  • ¥20 关于变压器的具体案例分析
  • ¥15 生成的QRCode圖片加上下載按鈕
  • ¥15 板材切割优化算法,数学建模,python,lingo
  • ¥15 科来模拟ARP欺骗困惑求解
  • ¥100 iOS开发关于快捷指令截屏后如何将截屏(或从截屏中提取出的文本)回传给本应用并打开指定页面
  • ¥15 unity连接Sqlserver
  • ¥15 图中这种约束条件lingo该怎么表示出来
  • ¥15 VSCode里的Prettier如何实现等式赋值后的对齐效果?
  • ¥20 keepalive配置业务服务双机单活的方法。业务服务一定是要双机单活的方式