数据有点水呀,这样也让我过了
查看原帖
数据有点水呀,这样也让我过了
966994
hellomoon楼主2024/5/28 21:29
#include<iostream>
using namespace std;
typedef long long ll;
int dp[100005];
int main()
{
	ll n,k;
	cin>>n>>k;
	//不管从哪个时间开始,结果都是一样的,这是一个环,那就从0开始 
	for(int i=0;i<=n;i++)
		dp[i]=n;
	dp[0]=0;
	int T=4000;
	while(T--)
	{
		for(int i=1;i<k;i++)
			dp[i]=min(min(dp[i],dp[i-1]+1),dp[n+i-k]+1);
		for(int i=k;i<n;i++)
			dp[i]=min(min(dp[i],dp[i-1]+1),dp[i-k]+1);
	}
	int ans=0;
	for(int i=0;i<n;i++)
		ans=max(ans,dp[i]);
	cout<<ans;
}
2024/5/28 21:29
加载中...