vector

圆桌问题

http://acm.hdu.edu.cn/showproblem.php?pid=4841

 

用vector建立动态数组,方便对数组进行一系列操作。首先需要赶走n个人,每次赶走的人是坏人,定义一个cnt记录当前位置,圆桌是环,用取余处理。

代码:

#include<bits/stdc++.h>
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++) table.push_back(i);//初始化 
        int cnt=0;//cnt记录当前位置 
        for(int i=0;i<n;i++){
            cnt=(cnt+m-1)%table.size();
            table.erase(table.begin()+cnt);//赶走第pos+1个人 
        }
        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<<endl;
} return 0; }

最后输出的时候注意一下格式就a了。

有关vector的基操码篇博客:https://blog.csdn.net/qq_45021180/article/details/108500027?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522161501339116780264028328%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=161501339116780264028328&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-1-108500027.first_rank_v2_pc_rank_v29&utm_term=vector%E7%9A%84%E5%B8%B8%E7%94%A8%E6%93%8D%E4%BD%9C

posted @ 2021-03-06 14:51  Untergehen  阅读(34)  评论(0编辑  收藏  举报