HDU 5643 King's Game | 约瑟夫环变形
Posted kimsimple
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HDU 5643 King's Game | 约瑟夫环变形相关的知识,希望对你有一定的参考价值。
经典约瑟夫环
1 int f[N] ={ 0 }; 2 for(int i=2; i<=n; i++) 3 { 4 f[i] = (f[i-1] + k) % i; 5 }
变形:k是变化的
#include <iostream> #include <stdio.h> #include <string.h> #include <algorithm> #include <stdlib.h> #include <queue> #include <map> using namespace std; typedef long long LL; #define met(a, b) memset(a, b, sizeof(a)) #define INF 0x3f3f3f3f #define N 5210 int main() { int T, n, f[N] = { 0 }; scanf("%d", &T); while(T--) { scanf("%d", &n); int k = n-1; for(int i=2; i<=n; i++) { f[i] = (f[i-1] + k) % i; k --; } printf("%d\n", f[n] + 1); } return 0; }
以上是关于HDU 5643 King's Game | 约瑟夫环变形的主要内容,如果未能解决你的问题,请参考以下文章