描述 Description
给出长度为N的数列{A_i},每次可以从最左边或者最右边取走一个数,第i次取数得到的价值是i * A_j。求价值之和最大的取数方案。
输入格式 Input Format
第一行,一个整数,表示数列长度N。
接下来N行,每行一个整数,表示数列A_i。
输出格式 Output Format
一个整数,表示最大的价值之和。
算法分析:
设在区间[i,j]按照题目要求取数所获得的最大值为f(i,j),则
f(i,j) = max{f(i+1,j)+a[i]*(n+i-j),f(i,j-1)+a[i]*(n+i-j)}
f(i,i) = a[i]*n
代码:
#include <iostream>
#include <memory.h>
using namespace std;
const int maxn = 2010;
int a[maxn];
int f[maxn][maxn];
int n;
int dp(int i,int j)
{
if(f[i][j]!=-1) return f[i][j];
return f[i][j]=max(dp(i+1,j)+a[i]*(n+i-j),dp(i,j-1)+a[j]*(n+i-j));
}
int main()
{
cin>>n;
for(int i=1;i<=n;i++) cin>>a[i];
memset(f,-1,sizeof(f));
for(int i=1;i<=n;i++) f[i][i]=n*a[i];
cout<<dp(1,n)<<endl;
return 0;
}
分享到:
相关推荐
【标题】"tyvj数据库公开计划卷3"揭示了一个关于编程竞赛平台tyvj的重要信息,该平台似乎已经关闭。在它的生命周期中,tyvj可能是一个为程序员提供在线测试和实践的平台,支持用户进行编程挑战并提升技能。"卷3"暗示...
"tyvj1126-1150测试数据数据"这个标题可能指的是一个特定的测试项目或活动,其中“tyvj”可能是该项目或组织的缩写,而“1126-1150”可能代表日期范围,暗示了这些测试数据是在2011年11月26日至11月50日(假设日期...
【tyvj测试数据(1000~1099)】是一份专门针对TYVJ在线题库的测试资源,包含了从1000到1099编号的前一百道题目。TYVJ,全称为“Top Young Vitality Junior”,是一个面向青少年的信息学竞赛平台,提供丰富的编程题库...
tyvj上的测试数据需要的下载。。。。。
在当今信息时代,编程已成为一项至关重要的技能,尤其对于那些参加在线编程竞赛,比如tyvj(The Younger's Virtual Judge)和poj(Peking University Online Judge)的学生来说,掌握扎实的编程基础和解决算法问题的...
【TYVJ前38道题题解】中提到的代码是解决一个问题的算法,它涉及到字符串处理、计数、数组操作以及质数判断。首先,程序读取一个字符串`s`,并计算其中每个字符出现的次数,存储在`chance`数组中。接着,找出出现...
标题中的“TYVJ题库P1005题 滑雪问题源代码”指的是一个编程竞赛题目,来源于TYVJ(可能是一个在线编程竞赛平台)的题库,编号为P1005,主题是“滑雪”。这个问题显然需要参赛者编写程序来解决,而提供的“解”表明...
【标题】"Tyvj源代码 第一部分"涉及的是一个在线编程竞赛平台——Tyvj的源代码。Tyvj,全称“天梯算法竞赛”,是中国的一个知名编程竞技网站,旨在提供一个平台供程序员们进行算法练习和竞技。这个压缩包包含了Tyvj...
TYVJ源代码 VIJOS 源代码 (一共五部分) 此部分只包含
TYVJ源代码 VIJOS源代码 此部分只包含题目 代码部分:http://download.csdn.net/download/a710128/7630117 一共五部分
TYVJ源代码 VIJOS 源代码 此部分只包含题目 代码在 http://download.csdn.net/download/a710128/7630117 一共五部分
TYVJ源代码 VIJOS 源代码 此部分只包含题目 代码部分 : http://download.csdn.net/download/a710128/7630117 一共五部分
Tyvj_p1048_田忌赛马1 在这个题目中,我们可以使用贪心策略来解决,但是需要注意到存在打平的情况,这个贪心策略没有考虑到。如果出现打平的情况,两种分支的情况下要不是打平,要不然为了以后得分更高此时输掉。...
请不要再下载 ...。。。 那个有问题,现在我发一个新的 里面有一个教程(自认为写得很完整) 贴上后面几部分的地址(后面的不要分) ...如果有什么问题,请在 CSDN 上联系我
标题中的“求最大子序”是指在给定的整数序列中找到一个连续子序列,其元素之和最大。这是一个经典的计算机科学问题,通常被称为“最大子数组问题”或“最大连续子序列和问题”。本问题的目标是设计算法来解决这个...
Vijos的本地版题库是一款专为信息学竞赛爱好者设计的离线版在线判题系统(OJ,Online Judge)。这个系统集成了超过300道经典题目,旨在帮助用户在没有网络连接的情况下也能进行编程训练和自我评测。...
奥赛信息学在线评测网站快捷登陆。 包含TYVJ,WIKIOI等著名评测网站
这表明这个压缩包中的代码是作者在参与各类在线编程挑战时编写的,例如bzoj(Blue Zoo Online Judge),cojs(Codeforces),tyvj(Tianyi Online Judge),poj(Programming Online Judge)以及Usaco(USA ...
它是基于Vijos或TYVJ(天元在线评测系统)的一个轻量级版本,旨在简化评测流程,提高效率。该系统支持多种编程语言,包括但不限于C、C++、Java和Python等,允许用户提交代码后,系统会自动编译并运行,根据预设的...
它不仅是一个资源库,包含了所有参赛者的程序代码,而且提供了一个便利的途径,让选手们能够将自己的源程序提交到“天元在线虚拟竞赛平台(Tyvj)”进行评估和测试。这表明,这些程序可能涉及各种编程语言,如C++, ...