★实验任务

伊姐姐热衷于各类数字游戏,24 点、2048、数独等轻轻松松毫无压力。一 日,可爱的小姐姐邀请伊姐姐一起玩一种简单的数字 game,游戏规则如下: 一开始桌上放着 n 张数字卡片,从左到右按数字 1-n 放置,小姐姐按以下步 骤取卡片 小姐姐取出最左边的一张牌,藏于袖中;
小姐姐将此时剩余卡牌的最左边的 p 张移到最右边,假设桌上的牌为 1 2 3 4 5,移动最左边的两张卡片后结果为 3 4 5 1 2。注意当桌上卡片数量小于 p 时不 进行这步操作。 所有卡牌都被藏起来以后,游戏结束。
这是个十分简单的数字 game,然而伊姐姐因为紧张丧失游戏能力,你能帮 助伊姐姐统计,小姐姐第 k 次,第 2k 次…第 ik 次(i<=n/k)藏于袖中的卡片吗?

★数据输入

输入第一行为三个正整数 n(1<=n<=100000),p(0<=p<=10),k(0<k<=100),含 义在题目中给出。

★数据输出

输出为两行,第一行输出你总共要输出的卡片数量 m。 第二行 m 个数,按顺序输出小姐姐第 k 次,第 2k 次…第 mk 次藏的卡片。

输入示例 输出示例
6 3 2 3
5 6 3
输入示例 输出示例
10 1 3 3
5 2 8

★思路

当可以执行“将此时剩余卡牌的最左边的 p 张移到最右边”操作时,可以用队列来模拟这个操作——前三个数字依次出队,入队。但是要注意执行操作前要保证队列长度比p大一,因为操作的顺序是先取走一张牌,在执行。否则会越界。



其他的输出就很简单啦!

★Code

#include<iostream>
#include<math.h>
#include<queue>
using namespace std;
int main()
{
int n,p,k,count=0;
scanf("%d %d %d",&n,&p,&k);
printf("%d\n",n/k);
queue<int>q;
for(int i=1;i<=n;i++)
q.push(i);
while(q.size()>p)
{
int temp1=q.front();
q.pop();
count++;
if(count%k==0)
cout<<temp1<<" ";
for(int i=0;i<p;i++)
{
int temp2=q.front();
q.pop();
q.push(temp2);
}
}
while(!q.empty())
{
int temp3=q.front();
q.pop();
count++;
if(count%k==0)
cout<<temp3<<" ";
}
return 0;
}

算法与数据结构实验题 4.1 伊姐姐数字 game的更多相关文章

  1. 算法与数据结构实验题 6.4 Summary

    ★实验任务 可怜的 Bibi 丢了好几台手机以后,看谁都像是小偷,他已经在小本本上记 下了他认为的各个地点的小偷数量. 现在我们将 Bibi 的家附近的地形抽象成一棵有根树.每个地点都是树上的 一个节 ...

  2. 算法与数据结构实验题 6.3 search

    ★实验任务 可怜的 Bibi 刚刚回到家,就发现自己的手机丢了,现在他决定回头去搜索 自己的手机. 现在我们假设 Bibi 的家位于一棵二叉树的根部.在 Bibi 的心中,每个节点 都有一个权值 x, ...

  3. 算法与数据结构实验题 4.2 小 F 打怪

    ★实验任务 小 F 很爱打怪,今天因为系统 bug,他提前得知了 n 只怪的出现顺序以及击 倒每只怪得到的成就值 ai.设第一只怪出现的时间为第 1 秒,这个游戏每过 1 秒 钟出现一只新怪且没被击倒 ...

  4. 算法与数据结构实验题6.4 order (二叉树)

    1.题目: 2.代码: #include<iostream> #include<algorithm> using namespace std; struct Node { in ...

  5. 算法与数据结构实验题 5.2 Missile

    1.题目: 2.解题思路: 把每个点对应的两条半径求出,之后对d1进行升序排序,对应d2也改变位置.其中一个圆心的半径r1确定之后,除去第一个圆包围的点,在其余点中找到另外一个圆的最长的半径r2,此时 ...

  6. 数据结构_yjjsj(伊姐姐数字游戏)

    问题描述 伊姐姐热衷于各类数字游戏, 24 点. 2048.数独等轻轻松松毫无压力.一日,可爱的小姐姐邀请伊姐姐一起玩一种简单的数字 game,游戏规则如下:一开始桌上放着 n 张数字卡片,从左到右按 ...

  7. 基础算法和数据结构高频题 II

    DFS的两种理解方式:1. 按照实际执行顺序模拟 (适合枚举型DFS,下节课内容)2. 按照DFS的定义宏观理解 (适合分治型DFS,本节课内容) 1 Convert BST to Greater T ...

  8. 第三章 基础算法和数据结构高频题 I

    区间类问题 1 Missing Interval public List<String> findMissingRanges(int[] nums, int lower, int uppe ...

  9. DS实验题 sights

    算法与数据结构实验题 6.3 sights ★实验任务 美丽的小风姑娘打算去旅游散心,她走进了一座山,发现这座山有 n 个景点, 由于山路难修,所以施工队只修了最少条的路,来保证 n 个景点联通,娇弱 ...

随机推荐

  1. 集合之TreeMap

    TreeMap 底层数据结构是二叉树 如何保证键的唯一: 利用存的特点 如何保证键的可排序: 利用取的特点 左跟右 在map中数据结构只对键有效TreeMap 有Map的键值对的特性:还可以进行排序, ...

  2. Windows 聚焦(锁屏背景)不更新的解决方法

    在 Windows Store 搜索 Dynamic theme 安装后可对桌面背景.锁屏界面等进行设置,非常好用!

  3. c语言中:strlen和sizeof的区别和它们分别交换各自作用领域(\0问题)时的细微差别!!!

    本人c语言初学菜鸟一枚,今天通过敲了一段简单代码,发现strlen和sizeof之间的一些关系,总结如下: 用strlen计算数组长度要考虑进去\0 用sizeof计算字符串长度也要考虑进去\0 而s ...

  4. linux线程篇 (三) 线程的同步

    1 互斥量 pthreat_mutex_t mymutex; //1. 创建 初始化 int pthread_mutex_init(pthread_mutex_t *mutex, const pthr ...

  5. 小程序开发-13-小程序wxs的应用

    内容简介的换行 问题:因为微信的<text></text>标签能够转义\n,所以从服务器加载来的数据我们可以直接放到这个标签中,\n就会自己换行了.问题是服务器返回来的数据多了 ...

  6. Go 入门 - 方法和接口

    方法和接口 方法的接受者 Go中没有类,取而代之的是在结构体上定义的方法 为了将方法(函数)绑定在某一类结构体上,我们在定义函数(方法)时引入"接受者"的概念. 方法接受者在它自己 ...

  7. epoll 服务端 ET模式

    windows下IOCP, linux下 epoll. epoll模型其实也是一个同步模型,ET是epoll里面的一种模式,叫 边缘触发. 个人理解,类似于 windows下的事件选择模型.代码如下: ...

  8. WinSCP与Putty远程连接linux

    1.  有时putty连接不上,可能是linux机器上的telnet服务未开,把蓝线上的√去掉. 2. ctrl + p 打开putty窗口: 3. putty如果显示乱码,右键 putty窗口,选择 ...

  9. 成都Uber优步司机奖励政策(1月12日)

    滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...

  10. Homebrew安装Redis找不到redis.conf文件

    使用Homebrew安装redis完成后,使用命令 redis-server 启动redis,如下图所示: 启动信息中存在一条警告信息:没有指定的配置文件 然而在安装目录中并没有发现redis.con ...