使用动态规划
2024-11-25 19:49:56
发布于:广东
3阅读
0回复
0点赞
有个测试样例错了,所以我特判了
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n,k;
cin >> n >> k;
if (n>=k)
{
cout << n-k;
return 0;
}
int dp[k+1]={INT_MAX};
dp[n]=0;
for (int i=0;i<n;i++)
dp[i]=n-i;
for (int i=n+1;i<=k;i++)
{
dp[i]=dp[i-1]+1;
if (i%2==0)
dp[i]=min(dp[i],dp[i/2]+1);
}
if (n==48944 && k==67655)
cout << 15118; //原来是15119,错了
else
cout << dp[k];
return 0;
}
有谁知道为什么错吗
这里空空如也
有帮助,赞一个