hdu4841_圆桌问题
Posted bxynlbyx
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hdu4841_圆桌问题相关的知识,希望对你有一定的参考价值。
1 //#include<bits/stdc++.h> 2 #include<iostream> 3 #include<vector> 4 using namespace std; 5 int main(){ 6 vector<int>table; //模拟一个圆桌 7 int n,m; 8 while(cin>>n>>m){ 9 table.clear(); //有多组样例,切记清空 10 for(int i=0;i<2*n;i++) 11 table.push_back(i); //初始化一个圆桌 12 int pos=0; //设置当前位置 13 for(int i=0;i<n;i++){ //删除n个人 14 pos=(pos+m-1)%table.size(); //圆桌!循环取余 15 table.erase(table.begin()+pos); //删除坏人 16 } 17 int j=0; 18 for(int i=0;i<2*n;i++){ //打印提前要安排的座位 19 if(!(i%50)&&i) 20 cout<<endl; //50个字母一行 21 if(j<table.size()&&i==table[j]){ //table里留下的都为好人,匹配座位 22 j++; 23 cout<<"G"; 24 }else 25 cout<<"B"; 26 } 27 cout<<endl<<endl; //观察题目相邻数据间有一空行 28 } 29 return 0; 30 }
注:约瑟夫环问题,循环取余。使用vector解决。
以上是关于hdu4841_圆桌问题的主要内容,如果未能解决你的问题,请参考以下文章