1. 程式人生 > >HDU 5643 King's Game | 約瑟夫環變形

HDU 5643 King's Game | 約瑟夫環變形

printf for hdu bsp esp ret inf color long

經典約瑟夫環

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 | 約瑟夫環變形