1438.取牌游戏(队列)

小明与N-1位朋友玩取牌游戏,共有K张牌,其中M张是Good牌。每发一张牌,需将P张牌移至底部。题目要求找出所有Good牌的位置。给定N, K, P,使用循环队列可以有效解决问题。" 109736900,8449320,在Win10上安装PyCUDA的详细步骤,"['Python', 'CUDA', 'GPU编程', 'Visual Studio', '软件安装']
摘要由CSDN通过智能技术生成

题目描述
小明正在使用一堆共K张纸牌与N-1个朋友玩取牌游戏。其中,N<=K<=100000, 2<=N<=100, K是N的倍数。纸牌中包含M=K/N张“Good”牌和K-M张“Bad”牌。小明负责发牌,他当然想自己获得所有“Good”牌。

他的朋友怀疑他会欺骗,所以他们给出以下一些限制,以防止小明耍诈:

1)游戏开始时,将最上面的牌发给小明右手边的人。

2)每发完一张牌,他必须将接下来的P张牌(1<=P<=10)一张一张地依次移到最后,放在牌堆的底部。

3)以逆时针方向,连续给每位玩家发牌。

小明迫切想赢,请你帮助他算出所有“Good”牌放置的位置,以便他得到所有“Good”牌。牌从上往下依次标注为#1,#2,#3,…

输入
共一行,包含3个正整数N,K和P,中间用空格隔开

输出
M行,从顶部按升序依次输出“Good”牌的位置

样例输入
3 9 2
样例输出
3
7
8
提示
[提交][状态]
这道题的难度还是可观的,不过用循环队列一下就出来了

#include<iostream>
#include<algorithm>
using namespace std;
int a[1200000],b
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值