博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【记忆化搜索】bzoj1652 [Usaco2006 Feb]Treats for the Cows
阅读量:6981 次
发布时间:2019-06-27

本文共 778 字,大约阅读时间需要 2 分钟。

跟某NOIP的《矩阵取数游戏》很像。

f(i,j)表示从左边取i个,从右边取j个的答案。

f[x][y]=max(dp(x-1,y)+a[x]*(x+y),dp(x,y-1)+a[n-y+1]*(x+y))。

ans=max{f(i,n-i)}。

#include
#include
#include
using namespace std;#define N 2001int n,a[N],f[N][N],ans;int dp(int x,int y){ if(f[x][y]!=-1) return f[x][y]; if((!x)&&(!y)) return f[x][y]=0; if(!x) return f[x][y]=dp(x,y-1)+a[n-y+1]*(x+y); if(!y) return f[x][y]=dp(x-1,y)+a[x]*(x+y); return f[x][y]=max(dp(x-1,y)+a[x]*(x+y),dp(x,y-1)+a[n-y+1]*(x+y));}int main(){ memset(f,-1,sizeof(f)); scanf("%d",&n); for(int i=1;i<=n;++i) scanf("%d",&a[i]); for(int i=0;i<=n;++i) ans=max(ans,dp(i,n-i)); printf("%d\n",ans); return 0;}

转载于:https://www.cnblogs.com/autsky-jadek/p/4596948.html

你可能感兴趣的文章
京东二面的几个问题
查看>>
PHP和MySQL Web开发从新手到高手,第8天-创建categories管理页面
查看>>
1-2 postman工具简介
查看>>
如何提升 CSS 选择器的性能?
查看>>
Mac原生Terminal快速登录ssh
查看>>
wamp多站点访问设置
查看>>
Android深入浅出系列之Android工具的使用—模拟器(一)
查看>>
矩形的个数
查看>>
jenkins自动化部署工具
查看>>
Same binary weight (位运算)
查看>>
Unique Binary Search Trees java实现
查看>>
笔试算法题(58):二分查找树性能分析(Binary Search Tree Performance Analysis)
查看>>
Django内置Admin
查看>>
一个疯狂想法
查看>>
ARM体系结构
查看>>
用户输入一个数字,找到所有能够除尽它的数的总个数
查看>>
PhpMyAdmin的简单安装和一个mysql到Redis迁移的简单例子
查看>>
构建之法读后感part6
查看>>
欧拉函数
查看>>
转:秒杀系统架构分析与实战
查看>>