2021-06-20 · 1분
BOJ 11047 — コイン 0
BOJ 11047(コイン 0)、貪欲法のコイン問題の短い write-up。
2021-06-03 · 2분
この記事は公開から2年以上経過しています。
BOJ #1158 問題:https://www.acmicpc.net/problem/1158
[アルゴリズム] - キュー(queue) で学んだキューを活用して問題を解決します!

計算機科学や数学において、ヨセフス問題(Josephus problem)あるいはヨセフス順列(Josephus permutation)は次のように定義される。
n と k が自然数で、k < n と仮定する。n 人が円になって集まっているとき、任意の 1 人から順に数えていき、k 番目の人を集まりから除外する。残った n-1 人から再び次の人から順に数え、k 番目の人を除外する。これを誰も残らなくなるまで繰り返す。このとき集まりから除外される人の順を (n, k) ヨセフス順列といい、最後に除外される人を求める問題をヨセフス問題という。
C++ STL で提供される queue を使った。
(7, 3) のとき
N-1 回まで push してから pop し、
N のときは front してから pop を繰り返せば解決しそうです。
もっと見る
#include <cstdio>
#include <cstring>
#include <queue>
using namespace std;
int main() {
int N, K;
queue<int> Queue;
scanf("%d%d", &N, &K);
fgetc(stdin);
for (int i = 1; i <= N; i++)
{
Queue.push(i);
}
printf("<");
for (int i = 0; i < N - 1; i++)
{
for (int j = 0; j < K - 1; j++)
{
Queue.push(Queue.front());
Queue.pop();
}
printf("%d", Queue.front()); printf(", ");
Queue.pop();
}
printf("%d", Queue.front());
printf(">\n");
return 0;
}
原文(韓国語): tistory — 2021-06-03 公開、当ブログへ移行。この翻訳は AI の協力で作成されました。
…