ZCMU-1853-zbj的游戏
2017-01-26 19:42
239 查看
1853: zbj的游戏
Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 38 Solved: 10
[Submit][Status][Web
Board]
Description
这天zbj跟小伙伴们玩了一个游戏,他们总共有n个人,有一条长凳,上面最多能坐m个人。zbj和他的小伙伴们按照1-n编号,然后按顺序坐上长凳,然后每次长凳上的第k个那个人会被out当一个人被out之后,下一个人就可以坐上长凳,而每个人有自己喜欢的数字ai,他就会坐在第ai个位置。重复步骤直到长凳上的人数小于k
现在zbj想知道,他们这群人的out顺序是怎么样的?
Input
多组输入数据。对于每组输入数据,第一行是两个整数n,m,k(1<=m<n<=11000 1<=k<=m)。接下来一行有n-m个整数ai(1<=ai<=m),按顺序代表站着的人喜爱的数字。Output
输出out的顺序,输出为一行,每两个数字之间用空格隔开,行末无空格。Sample Input
5 2 21 2 2
Sample Output
2 1 4 5HINT
比如5个人玩游戏,长凳上只能坐2个人,k=2,那么1号2号先坐在了凳子上,第一轮,2号被out,3号坐下,3号喜欢的数字是1,那么3号坐在了第一个位置上,当前长凳上的顺序变成了3号 1号;第二轮,1号被out,4号坐下,4号喜欢的数字是2,那么4号坐在第二个位置上,当前长凳上的顺序变成了3号 4号;第三轮,4号被out,5号坐下,5号喜欢的数字是2,当前长凳上的顺序变成了3号 5号;第四轮,5号被out,无人坐下;第五轮,当前长凳上只有1个人<k,所以无人能被out,所以游戏结束。out顺序为2 1 4 5
【解析】
这道题之前一直在想,本来之前是开了三个数组,一个记录长凳上人的编号,一个是记录每个站着的人喜欢的位置,另一个记录out的人。然而一直没有搞清楚k的范围真的很坑...之后看了别人的代码才知道..其实就是用vector来进行删除和插入操作来进行模拟,这里注意k是小于等于m的,而站起来的人只有n-m个。所以可能n-m个人out结束了但还没有结束。这里vector的插入操作其实就是把它插入到那个位置其余的往后移,其实这里喜欢的位置就是指把这个人插入到这个位置而不是和那个位置的人进行交换..之前这个意思我也弄错了..
#include<iostream> #include<cstdio> #include<cstring> #include<cmath> #include<vector> #include<algorithm> using namespace std; vector<int>a; int main() { int n,m,k,p,flag,i; while(~scanf("%d%d%d",&n,&m,&k)) { flag=0; a.clear(); for(i=1;i<=m;i++) a.push_back(i); for(i=m+1;i<=n;i++) { scanf("%d",&p); if(flag==1) { printf(" "); } else { flag=1; } printf("%d",*(a.begin()+k-1)); a.erase(a.begin()+k-1);//第k个就是要删除 a.insert(a.begin()+p-1,i);//插入元素在喜欢的位置 } while(a.size()>=k)//元素还多余k没有喜欢的位置了就直接第k个出去就好了 { if(flag==1) { printf(" "); } else { flag=1; } printf("%d",*(a.begin()+k-1)); a.erase(a.begin()+k-1); } printf("\n"); } return 0; }
相关文章推荐
- ZCMU-1819-传球游戏
- zcmu-1643 报数游戏
- zcmu 1882: wjw的括号游戏
- zcmu-1646 盒子游戏
- ZCMU-1276-求和游戏
- zcmu1519 简单的数字游戏
- ZCMU-1860-zbj的电梯间
- ZCMU-1861-zbj的a+b
- zcmu-1113取石子游戏(威佐夫博弈)
- ZCMU-1863-zbj的长跑
- zcmu-1122: 取石子游戏(巴什博奕)
- ZCMU-1862-zbj的狼人杀
- zcmu-1121: 取石子游戏I(斐波那契博弈)
- ZCMU-1862: zbj的狼人杀
- ZCMU-1169-数字游戏
- 网络游戏的负载均衡技术
- 深入浅出C# 中文版 图文皆译 第三章 page120(119、121是填词游戏,跳过)
- 论游戏的模型表达
- 游戏设计流程(Game Design Workshop)
- android游戏开发——AndEngine游戏引擎(1)--------hello world