题目链接:https://vjudge.net/problem/HDU-4841
tips:看见圆环/圆桌 取模!!
(key:取模运算要会)
删去每一个人之后 每个人的位置都会变 所以要更新位置
题解:
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
int main()
{
vector<int>table;
int n, m;
while (cin >> n >> m)
{
table.clear();//清空
for (int i = 0; i < 2 * n; i++)//2n个人
table.push_back(i);
int pos = 0;//初始化
//找被踢掉的人的位置 然后用erase删去
for (int i = 0; i < n; i++)//踢掉n个人
{
pos = (pos + m - 1) % table.size();
//删除操作
table.erase(table.begin() + pos);
}
int count = 0;
for (int j = 0; j <2* n; j++)
{
if (!(j % 50) && j)
{
cout << endl;//满50换行
}
if (count < table.size() &&j== table[count])
{
count++;
cout << "G";
}
else
{
cout << "B";
}
}
cout << endl << endl;
}
}