第一眼感觉是贪心,,果断WA。然后又设计了一个两个方向的dp方法,虽然觉得有点不对,但是过了样例,交了一发,还是WA,不知道为什么不对= =,感觉是dp的挺有道理的,,代码如下(WA的):

 #include <stdio.h>
#include <algorithm>
#include <string.h>
using namespace std;
const int N = + ; int a[N];
int dp[N][N];
int n; int getDay(int i,int j)
{
return n - (j - i) + ;
} int main()
{
while(scanf("%d",&n) == )
{
for(int i=;i<=n;i++) scanf("%d",a+i);
memset(dp,,sizeof dp);
for(int i=;i<=n;i++)
{
for(int j=i+;j<=n+;j++) dp[i][j] = max(dp[i][j], dp[i-][j] + getDay(i,j) * a[i]);
}
for(int j=n+;j>=;j--)
{
for(int i=j-;i>=;i--) dp[i][j] = max(dp[i][j], dp[i][j+] + getDay(i,j) * a[j]);
}
int ans = ;
for(int i=;i<=n;i++) ans = max(ans, dp[i][i+]);
printf("%d\n",ans);
}
return ;
}

WA的DP

  看了别人的博客以后,有一个不错的dp方法:dp[i][j]表示左边已经选了i个右边已经选了j个最大值,然后转移也很明显。AC代码如下:

 #include <stdio.h>
#include <algorithm>
#include <string.h>
using namespace std;
const int N = + ; int a[N];
int dp[N][N];
int n; int main()
{
while(scanf("%d",&n) == )
{
for(int i=;i<=n;i++) scanf("%d",a+i);
memset(dp,,sizeof dp);
for(int i=;i<=n;i++)
{
for(int j=;i+j<=n;j++)
{
if(i > ) dp[i][j] = max(dp[i][j], dp[i-][j] + a[i] * (i+j));
if(j > ) dp[i][j] = max(dp[i][j], dp[i][j-] + a[n-j+] * (i+j));
}
}
int ans = ;
for(int i=;i<=n;i++) ans = max(ans, dp[i][n-i]);
printf("%d\n",ans);
}
return ;
}

最新文章

  1. OpenGL渲染流程
  2. php 正则
  3. 互联网的寒冬来了,BAT都不社招了
  4. iphone 使用技巧
  5. Android TextView内容过长加省略号,点击显示全部内容
  6. div模拟的下拉框特效jquery
  7. 【转载】Android Studio 设置内存大小及原理
  8. Learning Cocos2d-x for WP8(8)——动作Action
  9. 不用char*作为hash_map的key
  10. 参加IMWebConf 2017 前端开发者大会是什么体验?
  11. 转深入理解 AngularJS 的 Scope作用域
  12. RestTemplate的逆袭之路,从发送请求到负载均衡
  13. c++ 实现拓扑排序
  14. Intellij IDEA 快捷键整理-鬼畜版(全键盘开发指南)
  15. Python集成开发环境搭建
  16. shell中执行hive命令错误:delimited by end-of-file (wanted `EOF&#39;)
  17. unity, 导出对象到另一个项目
  18. CDN专业一站式解决方案
  19. pig(转载)
  20. ffmpeg推送RTSP直播流到EasyDarwin报错问题的修复

热门文章

  1. PHP数字转大写
  2. C#常用数据结构
  3. .NET Core中使用读取配置文件
  4. JSP JSONArray使用遇坑!添加以下6个jar包
  5. centos系统基本操作命令
  6. Linux 命令集锦
  7. gradient 渐变
  8. js通俗易懂的&amp;&amp;与||或运算
  9. 08_Azkaban案例实践1_Command单一job示例
  10. java与.net_20190726