hrbust 2309约瑟夫环

xiaoxiao2021-02-27  418

约瑟夫环递推公式 n个人中每次第m个选出 f[i]=(f[i-1]+m)%i; #include<stdio.h> #include<string.h> #include<math.h> #include<algorithm> #define ll long long using namespace std; int f[1000005]; int main() { int t; scanf("%d",&t); while(t--) { int n,m,m1; scanf("%d%d%d",&n,&m,&m1); f[1]=0; for(int i=2;i<=n;i++) if(i%2==0) f[i]=(f[i-1]+m1)%i; else if(i%2==1) { f[i]=(f[i-1]+m)%i; } printf("%d\n",f[n]); } }
转载请注明原文地址: https://www.6miu.com/read-4727.html

最新回复(0)