约瑟夫环Pro

约瑟夫环Pro
在此之前先看看一般的约瑟夫问题
约瑟夫环Pro
约瑟夫环Pro
发现这个题唯一不一样的就是m,只要在递推的时候不断的更换m数组即可

#include<bits/stdc++.h>
using namespace std;
#define lowbit(x) x&(-x)
#define ll long long
int n,k;
int a[105],m[105],f[105]; 
int main(){
	while(~scanf("%d%d",&n,&k)){
		for(int i=1;i<=k;i++)scanf("%d",&m[i]);
		f[1]=0;
		int mod=(n-1)%k;
		if(mod==0)mod=k;
		for(int i=2;i<=n;i++){
		f[i]=(f[i-1]+m[mod])%i;	
			mod--;
		if(mod==0)mod=k;	
		}
		cout<<f[n]<<endl;
	}
     return 0;
}
上一篇:poj 1051(水题,注意memset的使用和字符串操作)


下一篇:[SignalR]一个简单的聊天室