[模拟]uva-133 - The Dole Queue
突然发现好多人比自己聪明比自己优秀还比自己努力。。。好恐怖啊 每天珍惜这几个小时的学习时间吧
这个紫书的简单题写了好几天。。。真垃圾。。这种圆环模拟的题算是明白了 先-1再+1 是一个好办法 学到了
#include
#include
#include
#include
#include
#include
#include
#include
#include
int go(int p, int d, int t) {
while (t–) {
do {
p = (p + d + n - 1) % n + 1;//-1再+1是为了避免n的情况
} while (vis[p] == 1);//访问过跳过
}
return p;
}
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
int kk, mm, cnt;
while (cin >> n >> k >> m) {
if (n == 0) break;//特判
cnt = n;//剩余数=n
kk = n;
mm = 1;
memset(vis, 0, sizeof(vis));//重置数组
while (cnt) {
kk = go(kk, 1, k);
mm = go(mm, -1, m);
printf(“%3d”, kk);
cnt–;
if (kk != mm) {
printf(“%3d”, mm);
cnt–;
}
vis[kk] = vis[mm] = 1;//访问过
if (cnt) printf(“,”);
}
printf(“\n”);
}
return 0;
}
[模拟]uva-133 - The Dole Queue
https://47.97.0.163/2019/07/22/模拟uva-133-the-dole-queue/