NYOJ 714 Card Trick(队列queue)
来源:互联网 发布:添加域名为白名单 编辑:程序博客网 时间:2024/05/22 06:50
Card Trick
时间限制:1000 ms | 内存限制:65535 KB
难度:3
- 描述
The magician shuffles a small pack of cards, holds it face down and performs the following procedure:
- The top card is moved to the bottom of the pack. The new top card is dealt face up onto the table. It is the Ace of Spades.
- Two cards are moved one at a time from the top to the bottom. The next card is dealt face up onto the table. It is the Two of Spades.
- Three cards are moved one at a time…
- This goes on until thenth and last card turns out to be the n of Spades.
This impressive trick works if the magician knows how to arrange the cards beforehand (and knows how to give a false shuffle). Your program has to determine the initial order of the cards for a given number of cards, 1 ≤ n ≤ 13.
- 输入
- On the first line of the input is a single positive integer k, telling the number of test cases to follow. 1 ≤ k ≤ 10 Each case consists of one line containing the integer n. 1 ≤ n ≤ 13
- 输出
- For each test case, output a line with the correct permutation of the values 1 to n, space separated. The first number showing the top card of the pack, etc…
- 样例输入
245
- 样例输出
2 1 4 33 1 4 5 2
- 题意:
- 第一次把牌最上面的一个放到牌的最下面,然后此时最上面的牌为黑桃一并删除,第二次把最上面的两个放到最下面,此时最上面的为黑桃二并删除,以此类推n次;
- 思路:首先建一个队列存一到n,将前1个放到队尾,此时的队顶元素既是找到的黑桃被删除的数,以此类推就可以找到原序列
- 代码:
#include<stdio.h>#include<string.h>#include<math.h>#include<iostream>#include<algorithm>#include<queue>using namespace std;int c[20];int main(){ int t; scanf("%d",&t); while(t--) { queue<int>q; int n; scanf("%d",&n); for(int i=1; i<=n; i++) { q.push(i); } int k=1; for(int i=1; i<=n; i++) { for(int j=1; j<=i; j++) { int ans=q.front(); q.pop(); q.push(ans); } int dir=q.front(); c[dir]=k++;//k从2开始 q.pop(); //printf("%d %d\n",dir,k); } for(int i=1; i<=n; i++) { if(i!=n) { printf("%d ",c[i]); } else { printf("%d\n",c[i]); } } } return 0;}
0 0
- NYOJ 714 Card Trick(队列queue)
- NYOJ 714 Card Trick
- NYOJ 714 Card Trick
- NYOJ 714 Card Trick
- nyoj 714 Card Trick
- nyoj 714 Card Trick
- NYOJ Card Trick----714
- NYOJ--714--Card Trick
- poj 3032 nyoj 714 Card Trick
- E Card Trick(队列)
- 第六届河南省赛 zzulioj 1486: Card Trick (模拟)nyoj 714
- NYOJ714 Card Trick 【队列模拟】
- 714 Card Trick
- 南洋理工 714 Card Trick
- (数学,概率论)Card Trick
- Card Trick
- Card Trick
- POJ 3032 Card Trick(较好模拟题,双向队列deque)
- socket.io 服务器端api
- 解决PKIX:unable to find valid certification path to requested target 的问题
- onMeasure相关
- activity左进右出动画
- mysql悲观锁总结和实践
- NYOJ 714 Card Trick(队列queue)
- python查看可用模块
- 杀掉正在运行的脚本
- SDAE--随读笔记
- 1076. Forwards on Weibo (30)-PAT甲级真题(图的遍历bfs)
- xml用途
- 我的dp之路
- c语言程序设计架构思想-----1
- Linux服务器多进程模型