[luoguP2858] [USACO06FEB]奶牛零食Treats for the Cows(DP)
传送门
f[i][j][k] 表示 左右两段取到 i .... j 时,取 k 次的最优解
可以优化 k 其实等于 n j + i
则 f[i][j] = max(f[i + 1][j] + a[i] * (n j + i), f[i][j 1] + a[j] * (n j + i))
边界 f[i][i] = a[i] * n
递推顺序不好求,所以选择记忆化搜索。
——代码
1 #include <cstdio> 2 #include <iostream> 3 4 const int MAXN = 2001; 5 int n; 6 int a[MAXN], f[MAXN][MAXN]; 7 8 inline int read() 9 16 17 inline int max(int x, int y) 18 21 22 inline int dp(int x, int y) 23 28 29 int main() 30View Code
下一篇:[luoguP3052] [USACO12MAR]摩天大楼里的奶牛Cows in a Skyscraper(DP)
DP
pla文件怎么看,pla文件用什么打开?
pl1文件怎么看,pl1文件用什么打开?
pl文件怎么看,pl文件用什么打开?
pl0文件怎么看,pl0文件用什么打开?
pkt文件怎么看,pkt文件用什么打开?
pkm文件怎么看,pkm文件用什么打开?
pks文件怎么看,pks文件用什么打开?
pka文件怎么看,pka文件用什么打开?
pkh文件怎么看,pkh文件用什么打开?
pkg文件怎么看,pkg文件用什么打开?