当前位置:网站首页>ZCMU--1862: zbj的狼人杀
ZCMU--1862: zbj的狼人杀
2022-07-31 07:11:00 【小小小Why】
Description
这天zbj和小伙伴总共n个人出去玩狼人杀,玩的正开心的时候又来了一群人总共n个,硬是要跟他们一起玩,所以他们想了一个游戏规则准备赶走他们。规则是这样的,所有人坐在圆桌旁,从第一个人开始报数,数到第m个人,则这个人出局;然后从出局的人之后开始数数,再将数到的第m个人出局.....依次方法不断出局,直到最后只剩n个人,这时候,zbj希望剩下的n个人是他和他的小伙伴们,试问预先应该怎么安排座位,能使得他完成心愿?
Input
多组数据,每组数据输入:人数n(<=100000)、步长m(<=32767);
Output
对于每一组数据,输出2n个大写字母,‘A’表示zbj和他的小伙伴,‘B’表示外来的那群人,50个字母为一行,不允许出现空白字符。相邻数据间留有一空行。
Sample Input
2 3
2 4
Sample Output
ABBA
BAAB
解析:B其实就是淘汰的人,用vector来十分方便,我们开一个数组a[ ]来记录每个人是A还是B,最开始全部设为A,然后利用vector来模拟淘汰,每次淘汰前将其对应编号的a[ ]标记为B,最后按格式输出即可。
#include <stdio.h>
#include <vector>
using namespace std;
vector<int> v;
char a[200005];//来存放每个人对应是A还是B
int main()
{
int n,m,i,p;
while(~scanf("%d%d",&n,&m)){
p=0;
v.erase(v.begin(),v.end()); //初始化清空
for(i=1;i<=2*n;i++) v.push_back(i),a[i]='A';//先全部设为A,后面出局了更新为B
while(1){
p=(m+p-1)%v.size(); //第p个人淘汰了,要从下一个开始数,所以要带着p算出下一个淘汰的人
if(p<0) p=v.size()-1;//特判一下,小于0时,就是最后一个人
a[*(v.begin()+p)]='B'; //对应位置为B
v.erase(v.begin()+p); //此人出局
if(v.size()==n) break; //出局n个人,游戏结束
}
p=0;
for(i=1;i<=2*n;i++){
printf("%c",a[i]);
p++;
if(p==50) printf("\n"),p=0; //满50换一行
}
printf("\n\n"); //要多一个空行
}
return 0;
}边栏推荐
- 报销流程|By天放师兄
- 强化学习科研知识必备(数据库、期刊、会议、牛人)
- 2022.07.12_Daily Question
- Linux redis6.2.6 configuration file
- MySQL详解
- 一文读懂Elephant Swap,为何为ePLATO带来如此高的溢价?
- 双倍数据速率同步动态随机存储器(Double Data Rate Synchronous Dynamic Random Access Memory, DDR SDRAM)- 逻辑描述部分
- 【Objective-C语言中的@property】
- 2022.07.15_Daily Question
- Regarding "computing power", this article is worth reading
猜你喜欢

XSS靶场prompt.ml过关详解

Regarding "computing power", this article is worth reading

手把手教你开发微信小程序自定义底部导航栏

基于交替迭代法的交直流混合系统潮流计算matlab程序iEEE9节点系统算例

CY7C68013A之LED闪烁

PHP中 比较 0、false、null,‘‘ “

2022.07.13_每日一题
解决win11/win10在登陆界面(解锁界面)点击获取每日壁纸无效的问题 - get Daily Lockscreen and Wallpaper - Win11/10的登录界面背景图片在哪里?

2704:寻找平面上的极大点

双倍数据速率同步动态随机存储器(Double Data Rate Synchronous Dynamic Random Access Memory, DDR SDRAM)- 逻辑描述部分
随机推荐
[PSQL] 复杂查询
DAY18: Xss Range Clearance Manual
2022.07.20_Daily Question
页面懒加载
循环结构--for循环
【第四章】详解Feign的实现原理
初识NK-RTU980开发板
Ceph single node deployment
Shell编程之条件语句
2022.07.12_Daily Question
Leetcode952. 按公因数计算最大组件大小
进程和线程的区别&&run和start区别与联系
中软国际携手深开鸿发布(1+1) x N 战略,以数字化、智慧化改变人类生产和生活方式
2022.07.18_每日一题
Linux redis6.2.6 configuration file
【面试:并发篇37:多线程:线程池】自定义线程池
MySQL installation to the last step in the write the configuration file failed?And after the installation steps
Machine Learning - Notes and Implementation of Linear Regression, Logistic Regression Problems
完美指南|如何使用 ODBC 进行无代理 Oracle 数据库监控?
Thread 类的基本用法——一网打尽