Luogu P2240 数的计数数据加强版

来源:互联网 发布:c语言编程技巧 编辑:程序博客网 时间:2024/06/03 03:43

题目传送门:https://www.luogu.org/problem/show?pid=2240


主要思路:这题难道不是一个很基础的记忆化搜索吗?大家可以这样想:我们假设dp[n]储存的是数字为n时有的最多的数字.
那么我要知道dp[n]是不是得知道dp[1]+dp[2]+...+dp[n/2]?
这么一来,记忆化搜索就很好写了.(其实是我不想写DP23333)


附上代码:

#include <iostream>#define MAXN 1500010using namespace std;int dp[MAXN];int n;int search(int num){if(dp[num]!=0){return dp[num];}int i,temp;for(i=1;i<=num/2;i++){temp=search(i)+1;dp[num]+=temp;}return dp[num];}int main(){cin>>n;search(n);cout<<dp[n]+1;}

原创粉丝点击