UVA 133 The Dole Queue
2015-07-28 08:16
429 查看
题目
救济金发放分析
双向约瑟夫环问题。思路
链表不一定要指针实现,以下是数组模拟。代码
#include <cstdio> #define N 20 int main() { int n, k, m; int app[N+5]; while (scanf("%d%d%d", &n, &k, &m), n, k, m) { k = (k % n) ? k % n : n; m = (m % n) ? m % n : n; for (int i = 1; i <= n; i++) app[i] = i; int ki = n, mi = 1; while (1) { for (int i = k; i > 0; i--) { if (ki == n) ki = 1; /* 回环 */ else ki++; if (app[ki] == 0) i++; } for (int i = m; i > 0; i--) { if (mi == 1) mi = n; /* 回环 */ else mi--; if (app[mi] == 0) i++; } if (ki == mi) { int a = 0; for (int i = 1; i <= n; i++) if (app[i] != 0) a++; if (a == 1) { printf("%3d\n", ki); break; } else { printf("%3d,", ki); } } else { int b = 0; for (int i = 1; i <= n; i++) if (app[i] != 0) b++; if (b == 2) { printf("%3d%3d\n", ki, mi); break; } else { printf("%3d%3d,", ki, mi); } } app[ki] = app[mi] = 0; } } return 0; }
相关文章推荐
- 1612 - Guess(贪心)
- UIPickerView与UIDatePicker
- Leetcode #63 Unique Paths II
- Greatest Common Increasing Subsequence-最长公共上升子序列
- 【PB】PowerBuilder中的一些不太常用的方法
- Stringbuffer StringBuilder String
- iOS动画开发之二——UIView动画执行的另一种方式
- iOS动画开发之三——UIView的转场切换
- MYSQL启动后报:ERROR! The server quit without updating PID file错误的问题解决
- IOS UIKIT_EXTERN, __attribute__((visibility ("default"))) 是啥玩意?
- iOS开发——UI进阶篇(七)程序启动原理、打电话、发短信
- 多系统启动出现grub rescue模式,错误“normal.mod not found”解决办法
- hdu 5297 - Y sequence( 2015 Multi-University Training Contest 1)容斥原理
- Android Studio 卡在building界面
- 关于EasyUI-tree的一些操作
- Fuel简介
- 用Fluentd实现收集日志到HDFS(下)
- 第70讲:Scala界面GUI编程实战详解
- iOS UI - 用循环批量创建Label
- HDU - 1711 - Number Sequence,1686 - Oulipo,2087 - 剪花布条,3746 - Cyclic Nacklace (KMP基础)