(顺序表的应用5.4.2)POJ 1591 M*A*S*H(约瑟夫环问题的变形——变换步长值)
2013-10-31 16:31
387 查看
/* * POJ_1591_2.cpp * * Created on: 2013年10月31日 * Author: Administrator */ #include <iostream> #include <cstdio> using namespace std; const int maxn = 55; int cards[25]; bool position[maxn]; int main(){ int participants,lucky; int counter = 1; while(scanf("%d%d",&participants,&lucky)!=EOF){ int i,j; for(i = 0 ; i < 20 ; ++i){ scanf("%d",&cards[i]); } int left_num = participants; memset(position,1,sizeof(position)); for(i = 0 ; left_num > lucky ; ++i){//在left_num>lucky的情况下,不断的扫卡片数组 int k = 0;//标记数了多少个人 for(j = 0 ; (j <participants) && left_num > lucky ; ++j ){//扫position[]数组 if(position[j]){//如果这一个人还在队列里面 if(++k == cards[i]){//如果书到了卡片中要求的数字 --left_num;//幸存者的人数-1 k=0; position[j] = false;//那个人出队 } } } } if(counter != 1){ printf("\n"); } printf("Selection #%d\n",counter++); for(i = 0 ; i < participants ; ++i){ if(position[i]){ printf("%d ",i+1); } } printf("\n"); } return 0; }
相关文章推荐
- (顺序表的应用5.4.2)POJ 1591 M*A*S*H(约瑟夫环问题的变形——变换步长值)
- (顺序表应用5.1.1)POJ 3750 小孩报数问题(基本的约瑟夫环问题:给出人数n,出发位置w,间隔数s)
- (顺序表的应用5.4.3)POJ 1012(约瑟夫环问题——保证前k个出队元素为后k个元素)
- (顺序表的应用5.4.3)POJ 1012(约瑟夫环问题——保证前k个出队元素为后k个元素)
- (顺序表应用5.1.1)POJ 3750 小孩报数问题(基本的约瑟夫环问题:给出人数n,出发位置w,间隔数s)
- POJ 3615 牛的最小最大起跳高度问题 Floyd算法的变形应用
- POJ 3615 牛的最小最大起跳高度问题 Floyd算法的变形应用
- 数据结构(4)--循环链表的应用之约瑟夫环问题以及线性表总结之顺序表与链表的比较
- (顺序表应用5.1.2)UVA 113 The Dole Queue(双向约瑟夫环问题:给出总人数n,顺时针数k个,逆时针数m个)
- POJ 1837:Balance:动态规划_背包问题变形
- poj 1363 火车进站问题,栈的基本应用
- POJ 3790 最短路径问题(Dijkstra变形——最短路径双重最小权值)
- 约瑟夫环问题:有n个人围成一圈,顺序编号。从第1个人开始报数(从1-m报数),凡报到m的人退出圈子,问最后留下的是原来第几号的那位?
- 约瑟夫环的问题与应用(JAVA)
- 数据结构之线性表——约瑟夫环问题(循环链表的应用)
- C语言 迷宫问题求解(顺序栈应用示例)
- C语言用数组1. 简单约瑟夫环问题: N个人,编号从1~N围成一圈,输入一个数T,从1号开始报数,报到T的人出圈;下一人又从1开始报数,下一个报到T的人出圈,输出出圈顺序。 考虑问实现约瑟夫环问题
- 第三周项目4—顺序变应用问题(1)
- Poj 3517 And Then There Was One(约瑟夫环变形)
- poj 1012 & hdu 1443 Joseph(约瑟夫环变形)