#include<iostream>
#include<cstdio>
using namespace std;
int dp[100];
int main()
{
int m,n;
int i;
cin>>n>>m;
dp[1]=0;//如果只有个数字0,那么幸存者就是自己
for(i=2;i<=n;i++)
dp[i]=(dp[i-1]+m)%i;//状态转移方程,第一个出队后,相当于是i-1个数的问题,i-1个数和i个数是一一对应的关系。此处省略,需要画图脑补。
cout<<dp[n]+1<<endl;//因为只有从数字0开始的数才能建立这样的数据模型,所以实际中是从1开始数的话,我们另外建立一个数据模型,就是0-9与1-10的对应关系
return 0;
}
约瑟夫问题动态规划写法
最新推荐文章于 2022-03-25 16:18:45 发布