dp,然而最后一个点WA了,80pts,求助
查看原帖
dp,然而最后一个点WA了,80pts,求助
765461
zhangmingsheng3521楼主2023/6/30 19:53

代码如下:(直接暴力dp)

#include"bits/stdc++.h"
using namespace std;
int a[1000001];
void dp(int s)
{
	if (s%2==1)
	{
	   a[s]=a[(s-1)]+1;
	   return;
	}
	a[s]=min(a[(s-1)],a[(s/2)])+1;
}
int main()
{
	int n;
	scanf("%d",&n);
	a[n]=1;
	if (n==1)
	{
		printf("1");
		return 0;
	}
	for (int i=2;i<=n;i++)
	{
		dp(i);
	}
	printf("%d",a[n]);
	return 0;
}
2023/6/30 19:53
加载中...