约瑟夫问题『数据加强版』
来源:互联网 发布:苏黎世艺术学院 知乎 编辑:程序博客网 时间:2024/05/22 05:17
约瑟夫问题在大部分情况中是一道水题,但是如果把数据加强一点,可能会难倒一片人,所以今天来介绍如何A掉这题!『这里介绍的数据范围n,m均在30000以内』
#include<stdio.h>#include<stdlib.h>#include<string.h>#include<math.h>#include<algorithm>#include<vector>#include<queue>#include<map>#include<set>#include<iostream>using namespace std;vector<int>a;struct node{ int u,v,w;}e[100010];int flag[100010];long long gl(){ char c=getchar();long long f=1; int sum=0; while((c>'9' || c<'0') && c!='-') c=getchar(); if(c=='-'){f=-1;c=getchar();} while(c>='0' && c<='9'){ sum=sum*10+c-'0'; c=getchar(); } return f*sum;}int gi(){ char c=getchar();int f=1,sum=0; while((c>'9' || c<'0') && c!='-') c=getchar(); if(c=='-'){f=-1;c=getchar();} while(c>='0' && c<='9'){ sum=sum*10+c-'0'; c=getchar(); } return f*sum;}int main(){ int i,j,k,n,m; scanf("%d%d",&n,&m); int tot=n*2,now=1; for(i=1;i<=tot;i++)a.push_back(i); while(tot>n){ now=(now+m-1); if(now<=tot){ flag[a[now-1]]=1; a.erase(a.begin()+now-1); now=(now==tot?1:now); } else{ now%=tot; now=(now==0?tot:now); flag[a[now-1]]=1; a.erase(a.begin()+now-1); now=(now==tot?1:now); } tot--; } for(i=1;i<=2*n;i++) if(flag[i])printf("B"); else printf("G"); puts(""); return 0;}
这里用的是STL『大法好』中的不定长数组——vector,它是一种关联式容器,可以用这东西来模拟约瑟夫问题的全过程!!!剩下的就是一些简单操作了!
阅读全文
0 0
- 约瑟夫问题『数据加强版』
- hdu 5643 (约瑟夫环加强版)
- pku2886(约瑟夫变形加强)
- 信封问题加强版
- 加强版理发师问题
- 装载问题加强版
- 约瑟夫问题(java 版)
- 约瑟夫问题升级版
- 约瑟夫问题JAVA版
- 【codevs1282】约瑟夫问题,卡数据ing?
- Prime Palindromes (数据加强版)
- 约瑟夫环加强版用线段树解决m,,这类问题还可以拓展,只是一个思路,用线段树的思路要学习
- 约瑟夫问题、约瑟夫环
- 区间覆盖问题(加强版)
- 约瑟夫问题
- 约瑟夫问题
- 约瑟夫问题
- 约瑟夫问题
- 常量的特点
- SAPUI5教程——URLHelper的使用技巧
- [Python]深入理解 Python 异步编程(上)
- SAPUI5教程——MessageStrip的应用场景
- 527A. Playing with Paper
- 约瑟夫问题『数据加强版』
- 617. Merge Two Binary Trees
- Stm32f1 Keil5调试时候peripherals不显示的解决方法
- 代码
- 深度学习(六)caffe入门学习
- 深入理解 Reduce-side Join
- 走出百度沙盒,心态比优化更重要 -www.srcfans.com 站长文章
- 北大方正的定性:高管违规腐败,企业敛财成性
- javascript正则验证