NYOJ714-Card Trick

简介:

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 the nth 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张牌,找到一个顺序,使得第一次把上面一张取出放到最下面,

然后取出最上面一张是一,第i次把上面i张取出放到最下面,然后取出一张是i;

//模拟即可

#include<stdio.h>
#include<string.h>
int a[20],b[20];
void MoveBack(int n,int m)//将第一张牌移到牌堆最后
{
    int i;
 for(i=1;i<m;i++)
 {
  a[i]=a[i+1];
 }
 a[m]=n;
}
void DelTop(int m)//删除第一张牌
{
 int i;
 for(i=1;i<=m;i++)
 {
  a[i]=a[i+1];
 }
}
int main()
{
 int i,j,n,m,k,v,x,flag;
 scanf("%d",&n);
 while(n--)
 {
  scanf("%d",&m);
  for(i=1;i<=m;i++)
     a[i]=i;
  x=1;k=1;flag=m;
  while(m)
  {
     v=x;
     while(v--)
     MoveBack(a[1],m);
     b[a[1]]=k++;
     DelTop(m--);
     x++;
  }
  printf("%d",b[1]);
  for(i=2;i<=flag;i++)
   printf(" %d",b[i]);
  puts("");
  memset(a,0,sizeof(a));
  memset(b,0,sizeof(b));
 }
 return 0;
}
相关文章
|
缓存 监控 JavaScript
优化策略:提升Vue应用的性能和加载速度
【4月更文挑战第23天】本文探讨了优化Vue应用的策略,包括代码层面(精简代码、组件拆分、计算属性和侦听器)、路由懒加载、数据懒加载与防抖节流、图片和资源压缩及CDN、缓存机制的利用,以及使用Vue Devtools和性能分析工具进行监控与调试。通过这些方法,可以提升Vue应用的性能和加载速度,确保用户获得流畅体验。
376 1
|
4月前
|
机器学习/深度学习 人工智能 自然语言处理
DeepSeek vs. ChatGPT:大语言模型的技术分野与应用边界全解析
DeepSeek更适合中文环境下对语言理解和生成准确性要求高、专业领域内容生成需求大,以及对成本敏感、实时性要求高和硬件资源有限的场景。ChatGPT则更适合需要处理多种语言,尤其是以英文等西方语言为主,以及对创意写作、开放域对话有需求,对成本和实时性要求不高且有强大硬件支持的场景。两款模型各有侧重,用户可根据具体需求选择最适合的工具。
|
机器学习/深度学习 存储 算法
机器学习面试笔试知识点之非监督学习-K 均值聚类、高斯混合模型(GMM)、自组织映射神经网络(SOM)
机器学习面试笔试知识点之非监督学习-K 均值聚类、高斯混合模型(GMM)、自组织映射神经网络(SOM)
307 0
|
11月前
|
机器学习/深度学习 算法
探索支持向量机(SVM)的奥秘:从理论到实践
探索支持向量机(SVM)的奥秘:从理论到实践
|
运维 安全 物联网
带你读《网络安全等级保护2.0定级测评实施与运维》——1.2 等保 2.0 时代的主要变化
带你读《网络安全等级保护2.0定级测评实施与运维》——1.2 等保 2.0 时代的主要变化
成功解决localhost is not a valid address
成功解决localhost is not a valid address
|
机器学习/深度学习 算法 人工智能
独家 | 菜鸟级机器学习入门(附代码实例)
本文将简要介绍什么是机器学习,其运作原理,以及两个主要的机器学习的算法。
3668 0
|
机器学习/深度学习 算法 大数据
人机交互新进展:LFR-DFSMN语音识别声学模型介绍
语音识别技术是人机交互技术的重要组成部分,而语音识别中的声学模型是语音识别技术中的核心所在,堪称重中之重。阿里巴巴iDST智能语音交互团队最新的LFR-DFSMN模型相对于之前的LFR-LCBLSTM模型可以达到训练加速3倍、识别加速2倍、识别错误率降低20%和最终模型大小压缩50%的效果,实现了语音识别的迭代速度、识别成本、服务质量的全面提升。
9123 0
|
缓存 网络协议 网络架构
跨网段通信过程
原因:封装3层:源IP、目的IP不变,封装2层:源MAC封装接口F0/1的MAC地址(192.168.1.100),目的MAC封装目的IP的MAC地址(192.168.2100),路由器去ARP缓存表中找到对应的地址,成功重新封装ICMP包并存F0/1中转发出去。步骤九:路由器从F0/0重新封装并转发的ICMP回应包原因:路由器收到PC2发表的ICMP回应包,逐层解封装(解封装2层,目的MAC是路由器自己接口的MAC地址,连续解封装3层,目的IP不是路由器自己的IP,根据目的IP 192.168.1.1与路由器中的每一个路由条目进行与运算,找到匹配的路由条目,根据该匹配的路由表重新封装。封装I
跨网段通信过程
|
Java 数据库 Spring