UVa 133 算法竞赛入门经典4-3例题(约瑟夫环类型)
来源:互联网 发布:iris数据集 编辑:程序博客网 时间:2024/06/07 06:12
题目类型:约瑟夫环模型, 函数的简单应用, 自顶向下编程
题目大意 : 输入n, k, m; n个人站成圆环,k,m, 分别代表停顿中间间隔的人数, 其中一个顺时针旋转,一个逆时针旋转, 直 至环中没有人。
注意 : 1次旋转的时候,只有顺逆都完成,所选出的两个人才都被cut到, 不能一个一个的cut,这样会少一个。
难点:怎么弄出来一个圈???
(pos+flag+n-1)%n+1 公式的妙用, 这样控制循环的下一个,不会跑出来。
例题代码:
#include<stdio.h>#define maxn 25int n, k, m, a[maxn];int go(int p, int d, int t){ while(t--) { do{ p = (p+d+n-1) % n + 1; }while(a[p] == 0); } return p;}int main(){ while(scanf("%d %d %d", &n, &k, &m)) { if(n == 0 && m == 0 && k == 0) break; int i; for(i = 1; i <= n; i++) a[i] = i; int left = n; int p1 = n, p2 = 1; while(left) { p1 = go(p1, 1, k); p2 = go(p2, -1, m); printf("%3d", p1); left--; if(p2 != p1) { printf("%3d", p2); left--; } a[p1] = a[p2] = 0; if(left) printf(","); } printf("\n"); } return 0;}
0 0
- UVa 133 算法竞赛入门经典4-3例题(约瑟夫环类型)
- 算法竞赛入门经典 例题 9-4
- 算法竞赛入门经典 例题 3-4 回文串
- 算法竞赛入门经典(第2版)例题4-6 师兄帮帮忙 (A Typical Homework UVa 12412)
- 《算法竞赛入门经典2ndEdition 》例题3-1 TeX中的引号(Tex Quotes, Uva 272)
- 算法竞赛入门经典 例题 6-12 油田(Oil Deposits, UVa 572)
- 算法竞赛入门经典 例题4-2孪生素数
- 【算法竞赛入门经典】6.2链表 例题6-4 UVa11988
- 算法竞赛入门经典 例题7-3 倒水问题
- 算法竞赛入门经典 例题9-3 硬币问题
- 算法竞赛入门经典 例题 3-1 开灯问题
- 算法竞赛入门经典 例题 3-2 蛇形填数
- 算法竞赛入门经典例题-优先队列(阿格斯)
- 算法竞赛入门经典 例题9-1
- 算法竞赛入门经典 例题8-1
- 算法竞赛入门经典例题-勇者斗恶龙
- 算法竞赛入门经典例题-蚂蚁
- 算法竞赛入门经典(第2版)例题5-5 集合栈计算机 (The SetStack Computer UVa 12096)
- 反转串
- Java基本概念-session和cookie
- Eclipse4.X版本安装fatjar插件(luna mars 版本均可用)
- MVC(一、目录简介)
- WebRTC内置debug工具,详细参数解读
- UVa 133 算法竞赛入门经典4-3例题(约瑟夫环类型)
- macOS10.12下如何丝滑的使用appium?
- POJ 2996-Help Me with the Game(模拟-描述棋盘中KQRBNP的位置)
- 二分贪心专题B
- Android.mk详解
- 米洛个人修炼术:快速提升能力的简单方法
- 解决Spring Data JPA延迟加载no session错误
- java poi 读取Excel
- Java基本概念-杂记