【动态规划】【记忆化搜索】CODEVS 3409 搬运礼物 CodeVS原创
2014-10-27 20:17
323 查看
考虑暴力递归求解的情况:
f(i)=min(a(i),f(i-1),f(i-2),...,f(1))
由于只要参数相同,f()函数的返回值是一样的,因此导致了大量的重复计算,所以我们可以记忆下来。
f(i)=min(a(i),f(i-1),f(i-2),...,f(1))
由于只要参数相同,f()函数的返回值是一样的,因此导致了大量的重复计算,所以我们可以记忆下来。
#include<cstdio> #include<algorithm> #include<cstring> using namespace std; int n,a[5001],memory[5001]; int f(int cur) { if(memory[cur]!=-1) return memory[cur]; int res=a[cur]; for(int i=1;i<cur;i++) res=min(res,a[cur-i]+f(i)); return memory[cur]=res; } int main() { scanf("%d",&n); for(int i=1;i<=n;i++) scanf("%d",&a[i]); memset(memory,-1,sizeof(memory)); memory[1]=a[1]; printf("%d\n",f(n)); return 0; }
相关文章推荐
- 【动态规划】【记忆化搜索】CODEVS 3415 最小和 CodeVS原创
- 【动态规划】【记忆化搜索】CODEVS 1011 数的计算 2001年NOIP全国联赛普及组
- 【动态规划】【记忆化搜索】CODEVS 1010 过河卒 2002年NOIP全国联赛普及组
- 区间型动态规划 之 CODE[VS] 矩阵取数游戏 (2007年NOIP全国联赛提高组)
- codevs 原创抄袭题 5969 [AK]刻录光盘
- 【NOIP】CODE[VS] 1044 拦截导弹 动态规划 序列型DP
- codevs2618 核电站问题——记忆化搜索,或者dp
- codevs售货员的难题 —— 状态压缩动态规划[四星]
- Codevs 3409 搬运礼物
- Codevs_1040_[NOIP2001]_统计单词个数_(划分型动态规划)
- 礼物[Codevs1321]
- 区间型动态规划 之 CODE[VS] 1154 能量项链 (2006年NOIP全国联赛提高组)
- Codevs 2503 失恋28天-缝补礼物
- 2016. 4.10 NOI codevs 动态规划练习
- codevs2618 核电站问题(记忆化搜索)
- codevs1163 访问艺术馆 树型数组 记忆化搜索
- codevs 1423 骑士 - Tarjan - 动态规划
- codevs 1068 乌龟棋(记忆化搜索)
- code[vs]1381 贪婪的礼物送礼者(mp函数的应用)
- 失恋28天-缝补礼物(codevs 2503)