欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

【STL容器vector+模拟+输入输出格式】HDU-4841 圆桌问题

程序员文章站 2024-01-23 23:24:46
...

【STL容器vector+模拟+输入输出格式】HDU-4841 圆桌问题
【STL容器vector+模拟+输入输出格式】HDU-4841 圆桌问题

注解

1、用vector容器来模拟。
2、模拟的过程:先从0到2n-1编号,然后每次把第m个消除(erase方法)。再遍历一遍整个容器,根据容器中剩下的编号,确定每个人是好人还是坏人。
3、注意输入和输出格式。

代码

#include <iostream>
#include <vector> 

using namespace std;

int main() {

	int n, m;
	while(~scanf("%d %d", &n, &m)) {
		vector<int> v;
		for(int i=0; i<2*n; i++){
			v.push_back(i);
		}
		int pos = 0;
		while(v.size()>n){
			pos = (pos+m-1) % v.size();
			v.erase(v.begin()+pos);
		}
		pos = 0;
		for(int i=0; i<2*n; i++){
			if(i && !(i%50)){
				cout<<endl;
			}
			if(pos<v.size() && v[pos]==i){
				pos++;
				cout<<"G";
			}
			else{
				cout<<"B";
			}
		}
		cout<<endl<<endl;
	}

	return 0;
}

结果

【STL容器vector+模拟+输入输出格式】HDU-4841 圆桌问题