SPOJ 1108 Card Trick 暴力模拟
解释一下样例,因为我觉得这个题意表述的不是很清楚。以第二组样例为例。
牌序为:3 1 4 5 2
第一轮:把 3 放到末尾:1 4 5 2 3,最顶上的牌是1,把1拿走。剩余 4 5 2 3
第二轮:1.把4放到末尾:5 2 3 4
2.把5放到末尾:2 3 4 5
最顶上的牌是2,把 2 拿走,剩余:3 4 5
第三轮:1.把3放到末尾:4 5 3
2.把4放到末尾:5 3 4
3.把5放到末尾:3 4 5
最顶上的牌是3,把 3 拿走,剩余:4 5
第四轮:1.把4放到末尾:5 4
2.把5放到末尾:4 5
3.把4放到末尾:5 4
4.把5放到末尾:4 5
最顶山的牌是4,把 4 拿走,剩余5
第五轮:5次把5放到末尾的操作,把 5 拿走。操作结束。
方法:仍然以第二组样例为例,
一开始是5个空位:-----
1.从第1个位置开始,数 1 个空格: -1---
2.从放1的位置开始,数 2 个空格:-1--2
3.从放2的位置开始,数 3 个空格:31--2 (若后面没有位置,再从第一个位置开始)
4.从放3的位置开始,数 4 个空格:314-2
5.从放5的位置开始,数 5 个空格:31452
即每次超过最后一个位置时,再返回头一个位置。在每次要放的牌 i 之前数 i 个空格就行。
#include <cstdio>
#include <cstring>
#include <cstdlib> const int MAXN = ; int n;
int ans[MAXN]; int main()
{
int T;
scanf( "%d", &T );
while ( T-- )
{
scanf( "%d", &n );
int cur = ;
int pos = ;
memset( ans, -, sizeof(ans) );
while ( cur <= n )
{
int i, cnt;
int left = n - ( cur - ); //剩余空格的个数
left = cur % left + ; //一定要取模!!!不然会超时
for ( i = pos, cnt = ; ; ++i )
{
if ( i > n ) i = ;
if ( ans[i] == - ) ++cnt;
if ( cnt == left ) break;
}
ans[i] = cur;
pos = i;
++cur;
} for ( int i = ; i <= n; ++i )
{
if ( i != ) putchar(' ');
printf( "%d", ans[i] );
}
puts("");
}
return ;
}
SPOJ 1108 Card Trick 暴力模拟的更多相关文章
- POJ 2200 A Card Trick(模拟)
题目链接 题意 : 一共52张牌(A, 2, 3, 4, 5, 6, 7, 8, 9, 10, J, Q, K)花色分别是C,D,H,S ...给助理5张牌,然后助理需要重新排一下次序,把第一张牌给观 ...
- UESTC 890 Card Trick(DP 纸牌魔术)
题意 给你一些牌 所有正面朝下放桌子上 你选一个起点 翻开那张牌 牌上的数字是几就向前走几步 J,Q,K 都是向前走10步 A向前走11步 知道向前走相应的步数后超过了终点 ...
- bnuoj 20832 Calculating Yuan Fen(暴力模拟)
http://www.bnuoj.com/bnuoj/problem_show.php?pid=20832 [题意]: 给你一串字符串,求一个ST(0<ST<=10000),对字符串中字符 ...
- POJ 1013 小水题 暴力模拟
Counterfeit Dollar Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 35774 Accepted: 11 ...
- hdu_1006 Tick and Tick(暴力模拟)
hdu1006 标签(空格分隔): 暴力枚举 好久没有打题了,退队了有好几个月了,从心底不依赖那个人了,原来以为的爱情戏原来都只是我的独角戏.之前的我有时候好希望有个人出现,告诉自己去哪里,做什么,哪 ...
- ny714 Card Trick
Card Trick 时间限制:1000 ms | 内存限制:65535 KB 难度:3 描述 The magician shuffles a small pack of cards, holds ...
- hihoCoder #1871 : Heshen's Account Book-字符串暴力模拟 自闭(getline()函数) (ACM-ICPC Asia Beijing Regional Contest 2018 Reproduction B) 2018 ICPC 北京区域赛现场赛B
P2 : Heshen's Account Book Time Limit:1000ms Case Time Limit:1000ms Memory Limit:512MB Description H ...
- 美团2018年CodeM大赛-资格赛 分数 暴力模拟
链接:https://www.nowcoder.com/acm/contest/138/D来源:牛客网 小胖参加了人生中最重要的比赛——MedoC资格赛.MedoC的资格赛由m轮构成,使用常见的“加权 ...
- 2018/7/31-zznu-oj-问题 B: N! 普拉斯 -【求大数的阶乘-ll存不下-然后取尾零的个数输出-暴力模拟】
问题 B: N! 普拉斯 时间限制: 1 Sec 内存限制: 128 MB提交: 114 解决: 35[提交] [状态] [讨论版] [命题人:admin] 题目描述 在处理阶乘时也需要借助计算器 ...
随机推荐
- MySQL 从库日志比主库多
在群里聊天的时候,一个群友说,生产库主库宕机,但是主从数据库数据一致,但是从库的日志比主库多,很是不理解! 咨询后发现,生产库的主库没有设置sync_binlog=1,而是为sync_binlog=0 ...
- 加载驱动模块时Device or resource busy的解决方法
加载驱动模块时Device or resource busy的解决方法 加载驱动模块时Device or resource busy的解决方法 insmod或modprobe驱动模块时Device o ...
- [转]adb pull Permission denied及no such file错误
adb pull Permission denied及no such file错误 http://www.the8m.com/blog/article/javadk/adbpull.html XP系 ...
- Java中如何防止内存泄漏的发生
在Java开发中我们常常会遇到内存泄漏的情况发生.那么为什么会发生内存泄漏,以及怎样去防止! 内存泄漏的定义:对象已经没有被应用程序使用,但是垃圾回收器没办法移除它们,因为还在被引用着. 为什么会发生 ...
- 微软职位内部推荐-Senior SDE for Big Data
微软近期Open的职位: Title: Senior SDE The Big Data Tooling team looking for a talented and passionate devel ...
- 不同的source control下配置DiffMerge
TFS: 1. 打开Option -> Source Control -> Visual Studio TFS -> Configure User Tools; 2. 添加 .*, ...
- 开启VMware Esxi的SSH远程登录
1.在服务器的配置页面中开启 按[F2],输入密码,进入配置页面,选择troubleshooting options,选择EnableSSH 即可. 2.在VMware Client中开启 进入:配置 ...
- 求出1~13的整数中1出现的次数,并算出100~1300的整数中1出现的次数?为此他特别数了一下1~13中包含1的数字有1、10、11、12、13因此共出现6次,但是对于后面问题他就没辙了。ACMer希望你们帮帮他,并把问题更加普遍化,可以很快的求出任意非负整数区间中1出现的次数。
// test20.cpp : 定义控制台应用程序的入口点. // include "stdafx.h" include include include include inclu ...
- 设计模式之单实例模式(Singleton)
原理:将类的构造函数由pubic变为private或者protect,添加获取对象的public 成员函数,返回指向对象的静态指针. 首先来一段简单的代码实现 代码一 class Singleton ...
- 【HDOJ】【3037】Saving Beans
排列组合 啊……这题是要求c(n-1,0)+c(n,1)+c(n+1,2)+......+c(n+m-1,m) 这个玩意……其实就等于c(n+m,m) 好吧然后就是模P……Lucas大法好= = 我S ...