hdu 4841 圆桌问题(STL vector)
2 4
BGGB
题意:中文题就不用了
思路:
首先需要一个vector保存每个人,然后是一个vis数组来标记。
找n个人,所以循环n次。定义一个cnt=0,每一次cnt+=m-1,。
如果cnt<=当前的总人数,则将v.erase(v.begin()+cnt),vis【v.【cnt】】=1,当前人数-1;
如果cnt>=当前人数,cnt%=(当前的总人数),v.erase(v.begin()+cnt),vis【v.【cnt】】=1,当前人数-1;
Vis【i】=1 为B,vis【i】=0为G
#include<iostream>
#include<cstdio>
#include<cstring>
#include<vector>
#include<set>
#include<algorithm>
using namespace std;
#define N 100000
int n,m;
vector<int> v;
int vis[N];
int main()
{
while(scanf("%d%d",&n,&m)==2)
{
v.clear();
memset(vis,0,sizeof(vis));
int now=2*n;//总共的人数,下标从0开始 for(int i=0;i<now;i++)//初始化vector数组
v.push_back(i); int cnt=0;
for(int i=0;i<n;i++)
{
cnt=cnt+m-1;//当前的坏人
if(cnt<now)
{
vis[v[cnt]]=1;//将这个坏人标记为1
v.erase(v.begin()+cnt);
}
else
{
cnt=cnt%now;
vis[v[cnt]]=1;//将这个坏人标记为1
v.erase(v.begin()+cnt);
}
now--;
} for(int i=0;i<2*n;i++)
{
if(i%50==0 && i!=0)
printf("\n");
if(vis[i])
printf("B");
else
printf("G");
}
printf("\n");
printf("\n"); }
return 0;
}
hdu 4841 圆桌问题(STL vector)的更多相关文章
- hdu 4841 圆桌问题(用vector模拟约瑟夫环)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4841 圆桌问题 Time Limit: 3000/1000 MS (Java/Others) M ...
- hdu4841 圆桌问题[STL vector]
目录 题目地址 题干 代码和解释 参考 题目地址 hdu4841 题干 代码和解释 解本题时使用了刚学的STL vector,注意hdu不支持万能头文件#include<bits/stdc++. ...
- [hdu 4841]圆桌问题 | 约瑟夫问题 STL-vector
原题 问题描述: 经典的约瑟夫问题,有2n个人,其中n个好人n个坏人,使得删去n人后,剩下的全为好人.m为每次数的人数. n<=32767 题解: 首先考虑n的范围,暴力肯定行不通,所以会想到线 ...
- hdu5438 Ponds[DFS,STL vector二维数组]
目录 题目地址 题干 代码和解释 参考 题目地址 hdu5438 题干 代码和解释 解答本题时参考了一篇代码较短的博客,比较有意思,使用了STL vector二维数组. 可以结合下面的示例代码理解: ...
- C++ STL vector容器学习
STL(Standard Template Library)标准模板库是C++最重要的组成部分,它提供了一组表示容器.迭代器.函数对象和算法的模板.其中容器是存储类型相同的数据的结构(如vector, ...
- STL vector
STL vector vector是线性容器,它的元素严格的按照线性序列排序,和动态数组很相似,和数组一样,它的元素存储在一块连续的存储空间中,这也意味着我们不仅可以使用迭代器(iterator)访问 ...
- STL vector用法介绍
STL vector用法介绍 介绍 这篇文章的目的是为了介绍std::vector,如何恰当地使用它们的成员函数等操作.本文中还讨论了条件函数和函数指针在迭代算法中使用,如在remove_if()和f ...
- STL vector+sort排序和multiset/multimap排序比较
由 www.169it.com 搜集整理 在C++的STL库中,要实现排序可以通过将所有元素保存到vector中,然后通过sort算法来排序,也可以通过multimap实现在插入元素的时候进行排序.在 ...
- STL vector 用法介绍
介绍 这篇文章的目的是为了介绍std::vector,如何恰当地使用它们的成员函数等操作.本文中还讨论了条件函数和函数指针在迭代算法中使用,如在remove_if()和for_each()中的使用.通 ...
随机推荐
- XgCalendar日历插件动态添加参数
在使用xgcalendar日历插件的时候,参数数组并非只有类型.显示时间.时区等这些参数,还可以根据extParam自定义参数扩展搜索条件,例如根据用户Id搜索不同用户的日历信息,需要将用户的Id存在 ...
- js正则表达式中的问号使用技巧总结
这篇文章主要介绍了js正则表达式中的问号几种用法,比如+?,*?,{2,3}?可以停止匹配的贪婪模式等例子的解析. 在表示重复的字符后面加问号,比如+?,*?,{2,3}?可以停止匹配的贪婪模式. v ...
- 轮播图--JS手写
轮播图基本每个网站都会有,也有很多的JQuery插件可以用,这里是用JS代码写的. @{ Layout = null; } <!DOCTYPE html> <html> < ...
- Ecstore关于finder的默认的参数row的数据不见了的一些小问题?
在finder中,我们经常对默认的参数row进行数据的编辑处理,然而,在实际处理中,会遇到这么一个问题,该处理的数据不见了,造成这一原因的重要原 因是因为在设置的时候,把某些字段屏蔽掉了,导致返回的r ...
- start with connect by prior学习
这是oracle中的树查询,查询出来的数据会根据上下级组成树的结构.select * from mw_sys.mwt_pd_deps start with obj_id = '63EBEC8E-E76 ...
- mysql数据表如何导入MSSQL中
本案例演示所用系统是windows server 2012.其它版本windows操作系统类似. 1,首先需要下载mysql odbc安装包. http://dev.mysql.com/downloa ...
- div+css的叫法是不正确的
为什么国人将这种布局标准页面的方法叫做DIV+CSS? 因为第一个将这种技术引进中国的人,对这门技术理解不够透彻,单纯从代码上辨别过去的页面布局方法和现在流行的页面布局方法,认为过去布局页面用的是Ta ...
- 由setTimeout()里的this引出的this
example 1: window.id='windowid'; function M(){ this.id='Mid'; this.f1=function(){console.log(this.id ...
- 《javascript权威指南》读书笔记 -part2
我真的很佩服副院长~他是一个很有耐心 极其细致的人 工作态度严谨 代码简洁风格统一~再乱遭遭的代码只要经过他的手就会变的很漂亮 羡煞我也~ 不说废话了 还是乖乖看书吧~maybe可能也许的某一天 ...
- 关于PHP伪静态Rewrite设置
Rewirte主要的功能就是实现URL的跳转和隐藏真实地址,基于Perl语言的正则 表达式规范.平时帮助我们实现拟静态,拟目录,域名跳转,防止盗链等 一.Apache配置: 1.支持httpd ...