HDU4841 AHOI1999 圆桌问题 题解

朴素的约瑟夫问题,用vector处理即可

复制代码
#include <iostream>
#include <vector>
using namespace std;
//AHOI1999 圆桌问题   类似于约瑟夫问题
vector<int>table;

int n, m;

int main() {
    while (cin >> n >> m) {
        table.clear();
        for (int i = 0; i < 2 * n; i++)
            table.push_back(i);
        int pos = 0;
        for (int i = 0; i < n; i++) {
            pos = (pos + m - 1) % table.size(); //环,取余处理,这一步比较抽象
            table.erase(table.begin() + pos);
        }
        int j = 0;
        for (int i = 0; i < 2 * n; i++) {
            if (!(i % 50) && i)
                cout << endl;
            if (j < table.size() && i == table[j]) {
                j++;
                cout << "G";
            } else {
                cout << "B";
            }
        }
        cout << endl;
    }
    return 0;
}
复制代码

 

posted @   Miya555  阅读(35)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 25岁的心里话
点击右上角即可分享
微信分享提示
主题色彩