小明刚上小学,学会了第一个扑克牌“魔术”,到处给人表演。魔术的内容是这样的:

他手里握着一叠扑克牌:A,2,…J,Q,K 一共13张。他先自己精心设计它们的顺序,然后正面朝下拿着,开始表演。

只见他先从最下面拿一张放到最上面,再从最下面拿一张翻开放桌子上,是A;然后再从最下面拿一张放到最上面,再从最下面拿一张翻开放桌子上,是2;

…如此循环直到手中只有一张牌,翻开放桌子上,刚好是K。

这时,桌上牌的顺序是:A,2,3,4,5,6,7,8,9,10,J,Q,K

请你计算一下,小明最开始的时候手里牌的顺序是怎样的。

把结果写出来,逗号分割,小明“魔术”开始时,最下面的那张牌输出为第一个数据。
输入格式:

输入这叠扑克的数量。
输出格式:

对每一组输入,在一行中输出牌的初始顺序(最下面的那张牌输出为第一个数据,数字1表示A,数字11表示J,数字12表示Q,数字13表示K)。
输入样例:

在这里给出一组输入。例如:

3

输出样例:

在这里给出相应的输出。例如:

2,1,3

注意到题目中的先从最下面拿一张放到最上面,再从最下面拿一张翻开放桌子上
我们把这个过程你过来,变成先从桌子上拿最大的牌放到最下面,再把牌顶的一张牌放到最下面
重复执行以上过程就可得到原序列

#ifdef debug
#include <time.h>
#include "/home/majiao/mb.h"
#endif#include <iostream>
#include <algorithm>
#include <vector>
#include <string.h>
#include <stdlib.h>
#include <map>
#include <set>
#include <stack>
#include <queue>
#include <math.h>#define MAXN ((int)1e5+7)
#define ll long long int
#define INF (0x7f7f7f7f)
#define fori(lef, rig) for(int i=lef; i<=rig; i++)
#define forj(lef, rig) for(int j=lef; j<=rig; j++)
#define fork(lef, rig) for(int k=lef; k<=rig; k++)
#define QAQ (0)using namespace std;#define show(x...) \do { \cout << "\033[31;1m " << #x << " -> "; \err(x); \} while (0)void err() { cout << "\033[39;0m" << endl; }
template<typename T, typename... A>
void err(T a, A... x) { cout << a << ' '; err(x...); }namespace FastIO{char print_f[105];void read() {}void print() { putchar('\n'); }template <typename T, typename... T2>inline void read(T &x, T2 &... oth) {x = 0;char ch = getchar();ll f = 1;while (!isdigit(ch)) {if (ch == '-') f *= -1; ch = getchar();}while (isdigit(ch)) {x = x * 10 + ch - 48;ch = getchar();}x *= f;read(oth...);}template <typename T, typename... T2>inline void print(T x, T2... oth) {ll p3=-1;if(x<0) putchar('-'), x=-x;do{print_f[++p3] = x%10 + 48;} while(x/=10);while(p3>=0) putchar(print_f[p3--]);putchar(' ');print(oth...);}
} // namespace FastIO
using FastIO::print;
using FastIO::read;int n, m, Q, K, tot;struct Node {int lef, rig;
} tree[MAXN<<2];void dfs(int u) {printf("%d ", u);if(tree[u].lef) dfs(tree[u].lef);if(tree[u].rig) dfs(tree[u].rig);
}int a[MAXN], N;int main() {#ifdef debugfreopen("test", "r", stdin);clock_t stime = clock();
#endifstring str;cin >> str;if(str == "A") N = 1;else if(str == "J") N = 11;else if(str == "Q") N = 12;else if(str == "K") N = 13;else if(str == "10") N = 10;else N = atoi(str.data());deque<int> q; //双端队列表示牌堆,front表示底下,  back表示顶部map<int, string> mp;while(N) {q.push_front(N); //从桌子上拿最大的牌放到牌堆底下if(q.size() > 1) {q.push_front(q.back()); //取牌堆顶的一张牌放到牌堆底下q.pop_back();}N --;}int k = 0;while(!q.empty()) {if(k ++) printf(",");printf("%d", q.front());q.pop_front();}#ifdef debugclock_t etime = clock();printf("rum time: %lf 秒\n",(double) (etime-stime)/CLOCKS_PER_SEC);
#endif return 0;
}

PTA 7-3 小明的第一个扑克牌“魔术”(deque队列或链表操作)相关推荐

  1. 7-5 小明的第一个扑克牌“魔术”(队列或链表操作) (10 分)java版

    小明刚上小学,学会了第一个扑克牌"魔术",到处给人表演.魔术的内容是这样的: 他手里握着一叠扑克牌:A,2,-J,Q,K 一共13张.他先自己精心设计它们的顺序,然后正面朝下拿着, ...

  2. 小明特别喜欢打扑克牌,除了喜欢斗地主和德州扑克之外,还喜欢一种叫桥牌的游戏,桥牌的具体规则相当复杂,有叫牌、打牌和计分三个阶段,还有不断变化的局况,局况可能影响叫牌打牌策略。但是小明暂时不关心这一些,

    题目描述: 小明特别喜欢打扑克牌,除了喜欢斗地主和德州扑克之外,还喜欢一种叫桥牌的游戏,桥牌的具体规则相当复杂,有叫牌.打牌和计分三个阶段,还有不断变化的局况,局况可能影响叫牌打牌策略.但是小明暂时不 ...

  3. ZZULIOJ 2348: 小明的第一份实习任务(前缀和)

    题目描述 日志系统是分布式系统的重要组成部分,决定着系统的成败.工业界一种比较常见的的日志处解决方案是通过消息队列将系统产生的日志信息异步的存储起来,再通过日志分析服务进行相应的日志分析,常用的消息队 ...

  4. Java输出小明算对多少题目_2014年Java方向C组第十题

    标题:矩阵翻硬币 小明先把硬币摆成了一个 n 行 m 列的矩阵. 随后,小明对每一个硬币分别进行一次 Q 操作. 对第x行第y列的硬币进行 Q 操作的定义:将所有第 ix 行,第 jy 列的硬币进行翻 ...

  5. CCF之小明上学——2018.12 第一题 (java满分代码)

    package Question_one; /*  * 小明上学  * 题目背景 小明是汉东省政法大学附属中学的一名学生,他每天都要骑自行车往返于家和学校.为了能尽可能充足地睡眠,他希望能够预计自己上 ...

  6. CCF2018年第一题:小明上学C++答案

    题目背景 小明是汉东省政法大学附属中学的一名学生,他每天都要骑自行车往返于家和学校.为了能尽可能充足地睡眠,他希望能够预计自己上学所需要的时间.他上学需要经过数段道路,相邻两段道路之间设有至多一盏红绿 ...

  7. PTA练习-- 寻宝,小明有一张藏宝图,上面有m*n个房间,每个房间里面都有一个有一定价值的宝物,小明只能从左上角的房间进入收集宝物...(动态规划)

    寻宝 小明有一张藏宝图,上面有m*n个房间,每个房间里面都有一个有一定价值的宝物,小明只能从左上角的房间进入收集宝物,且每次只能向右边或向下边的房间继续寻宝,最终只能从最右下的房间出来.请你帮小明计算 ...

  8. 小明对类似于 hello 这种单词非常感兴趣,这种单词可以正好分为四段,第一段由一个或多个辅音字母组成,第二段由一个或多个元音字母组成,第三段由一个或多个辅音字母组成,第四段由一个或多个元音字母组成。

    小明对类似于 hello 这种单词非常感兴趣,这种单词可以正好分为四段,第一段由一个或多个辅音字母组成,第二段由一个或多个元音字母组成,第三段由一个或多个辅音字母组成,第四段由一个或多个元音字母组成. ...

  9. 输入第一行是一个整数n,代表小明做记录的天数 第二行是n个实数,代表每天早上的气温 输出 一个实数(保留1位小数),表示最低气温

    问题 Z: 天气 时间限制: 1 Sec 内存限制: 128 MB 提交: 1272 解决: 935 [提交] [状态] [讨论版] [命题人:admin] 题目描述 小明是个南方人,感觉北方的冬天特 ...

最新文章

  1. HDU1862 EXCEL排序【排序】
  2. 对Python中几种快速排序的实现以及运行时间进行比较
  3. hibernate框架之主键生成
  4. Bootstrap Table踩坑——设置多级表头后只显示第一级表头问题解决办法
  5. fastboot devices 找不到设备_处理工业废气找不到好设备?您应该了解一下工业静电油烟净化器...
  6. QT5 串口收发实例代码
  7. [转] 各种数据类型转换
  8. CSS从大图片上截取小图标的使用
  9. pcb天线和纯铜天线_PCB天线是什么
  10. hp linux 禁用u盘启动不了,笔记本被禁用U盘启动功能的bios设置解除方法
  11. 怎么在contenteditable可编辑的div插入图片
  12. 群辉监控Surveillance Station不支持H265解决方案(解决群辉不支持的摄像头)
  13. 2022年山东最新交安安全员考试模拟题及答案
  14. total uninstall 7(卸载清除工具) v7.00
  15. tecplot——Fluent重叠网格解决方案
  16. Python让Excel飞起来—模块
  17. 用 python 实现 简单AI 双人日麻(文字版)之一 建立胡牌逻辑
  18. 魔兽世界运营时间线timeLine(2004-2014)
  19. vim美化插件,让你的vim与众不同
  20. SD 协议与协议栈源码分析(SD 内存卡)

热门文章

  1. https之数字证书分析
  2. 2020年过氧化工艺新版试题及过氧化工艺复审考试
  3. 用Turtle实现筛选素数(质数)
  4. 电子科大自考c语言试题,国防科大电子科学学院:愿做一线部队的“智囊团”...
  5. JS slice用法
  6. 未来计算机会是什么样子的呢,未来的电脑会是什么样?
  7. CSS实现九宫格布局方法
  8. 如何自己训练BERT
  9. 03-MySql数据库与JDBC day03_多表操作
  10. java项目获取根目录_获取java项目的根目录