zcmu1862(模拟)
生活随笔
收集整理的這篇文章主要介紹了
zcmu1862(模拟)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
1862: zbj的狼人殺
Time Limit:?1 Sec??Memory Limit:?128 MB
Submit:?144??Solved:?47
[Submit][Status][Web Board]
Description
這天zbj和小伙伴總共n個人出去玩狼人殺,玩的正開心的時候又來了一群人總共n個,硬是要跟他們一起玩,所以他們想了一個游戲規(guī)則準備趕走他們。規(guī)則是這樣的,所有人坐在圓桌旁,從第一個人開始報數(shù),數(shù)到第m個人,則這個人出局;然后從出局的人之后開始數(shù)數(shù),再將數(shù)到的第m個人出局.....依次方法不斷出局,直到最后只剩n個人,這時候,zbj希望剩下的n個人是他和他的小伙伴們,試問預(yù)先應(yīng)該怎么安排座位,能使得他完成心愿?
Input
多組數(shù)據(jù),每組數(shù)據(jù)輸入:人數(shù)n(<=100000)、步長m(<=32767);
Output
對于每一組數(shù)據(jù),輸出2n個大寫字母,‘A’表示zbj和他的小伙伴,‘B’表示外來的那群人,50個字母為一行,不允許出現(xiàn)空白字符。相鄰數(shù)據(jù)間留有一空行。
Sample Input
2 3
2 4
Sample Output
ABBA
?
BAAB
解析:用vector模擬一下就可以了,到m就erase。
#include<bits/stdc++.h> using namespace std;#define e exp(1) #define pi acos(-1) #define mod 1000000007 #define inf 0x3f3f3f3f #define ll long long #define ull unsigned long long #define mem(a,b) memset(a,b,sizeof(a)) int gcd(int a,int b){return b?gcd(b,a%b):a;}const int maxn=2e5+5; vector<int> v; int f[maxn]={0}; int main() {int m,n,flag=0;while(~scanf("%d%d",&n,&m)){mem(f,0);v.clear();if(flag)puts("");flag=1;for(int i=1; i<=2*n; i++){v.push_back(i);}int p=0;for(int i=0; i<n; i++){p=(p+m-1)%v.size();f[v[p]]=1;v.erase(v.begin()+p);}for(int i=1; i<=2*n; i++){if(f[i])printf("B");else printf("A");if(i%50==0)puts("");}puts("");}return 0; }?
總結(jié)
以上是生活随笔為你收集整理的zcmu1862(模拟)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 十年架构师详解JVM运行原理
- 下一篇: Netty从零开始(一)