poj 3032 nyoj 714 Card Trick

来源:互联网 发布:数学分析书籍 知乎 编辑:程序博客网 时间:2024/06/05 06:10

题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=714

此题是河南省ACM省赛的题,基本上都做出来了;

题目大意是:有n张牌,找到一个顺序,使得第一次把上面一张取出放到最下面,然后取出最上面一张是一,第i次把上面i张取出放到最下面,然后取出一张是i;

本题也没啥技巧,就是模拟;


参考代码如下:


#include <iostream>#include <cstring>using namespace std;int a[14];int flag[14];int n;void execute(){if(n==1){cout<<1<<endl;return ;}memset(flag,0,sizeof(flag));int i,len=0,t=1,k=0,sum=0;while(len<n){while(sum!=t+1){k++;if(k==n+1)k=1;if(flag[k]==0)sum++;}a[k]=t;flag[k]=1;t++;sum=0;len++;}for(i=1;i<=n;i++)cout<<a[i]<<' ';cout<<endl;}int main(){int T;cin>>T;while(T--){cin>>n;execute();}return 0;}


原创粉丝点击