题目链接

题目

题目描述

dd在玩跳格子游戏,具体游戏规则如下,

\(n\) 个格子呈环形分布,顺时针方向分别标号为 \(1\sim n\) ,其中 \(1\) 和 \(n\) 相邻,每个格子上都有一个正整数 \(a[i]\) ,玩家可以选择一个点作为起点开始跳 \(n\) 下,第 \(i\) 次跳跃,玩家只可以选择当前位置左边或右边最近且尚未被跳跃过的位置进行一次跳跃,并获得 \(i\times a[p]\) 的得分,其中 \(p\) 为第 \(i\) 次跳跃的位置。

dd很鸡贼,想赢又不想动脑子,她希望你能给她规划路线以确保她的胜利

输入描述

第一行一个数 \(n(1≤n≤2000)\)

接下来一行 \(n\) 个数,表示 \(a[i](1≤a[i]≤2000)\)

输出描述

一个数,表示dd可能获得的最高分

示例1

输入

  1. 3
  2. 1 1 1

输出

  1. 6

说明

可能方案

1->2->3

1->3->2

2->1->3

2->3->1

3->1->2

3->2->1

(以上数字表示格子标号)

答案均为 1*1+2*1+3*1=6

最优方案不唯一,最优答案唯一

示例2

输入

  1. 3
  2. 1 2 3

输出

  1. 14

说明

方案:1->2->3(数字对应格子标号)

答案:1*1+2*2+3*3=14

最优方案唯一

题解

知识点:区间dp。

题意就是每次选区已扩展区间的左右侧最近的一个点,起点随意,因此是个环状区间dp可以解决的问题。

开两倍端点,处理环状。转移方程为:

\[dp[i][j] = \max(dp[i + 1][j] + l * a[i], dp[i][j - 1] + l * a[j])
\]

表示为选择 \([i,j]\) 的左端点或右端点作为第 \(l\) 个选择的对象。

类似问题有POJ2287的田忌赛马,也是选择区间左右端点的区间dp,但区别在于这道题是起点确定,田忌赛马是终点确定,选择的是第 \(n-l+1\) 个。

时间复杂度 \(O(n^2)\)

空间复杂度 \(O(n^2)\)

代码

  1. #include <bits/stdc++.h>
  2. #define ll long long
  3. using namespace std;
  4. int a[2007 << 1];
  5. ll dp[2007 << 1][2007 << 1];
  6. int main() {
  7. std::ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
  8. int n;
  9. cin >> n;
  10. for (int i = 1;i <= n;i++) {
  11. cin >> a[i];
  12. a[i + n] = a[i];
  13. }
  14. for (int i = 1;i <= 2 * n;i++) dp[i][i] = a[i];
  15. for (int l = 2;l <= n;l++) {
  16. for (int i = 1, j = l;j <= 2 * n;i++, j++) {
  17. dp[i][j] = max(dp[i + 1][j] + l * a[i], dp[i][j - 1] + l * a[j]);
  18. }
  19. }
  20. ll ans = 0;
  21. for (int i = 1;i <= n;i++) ans = max(ans, dp[i][i + n - 1]);
  22. cout << ans << '\n';
  23. return 0;
  24. }

NC227595 跳跳跳的更多相关文章

  1. 【初级坑跳跳跳】[NULLException] findViewById() id 引用错误,导致空指针

    在学习Intent页面切换,几个页面切换,导致view id 写错,写成另一个xml里的id去了,导致空指针异常 setContentView(R.layout.activity_second); B ...

  2. 【初级坑跳跳跳】第一个应用布局学习的代码运行时出错(manifest里未将activity先注册,控件错误)

    首先,根据书中想要实现的结果,看了下书中代码,大致知道布局是怎么样的,然后根据图片自己写xml, 1.运行时第一个坑是 忘记在AndroidManifest.xml里先注册activity,导致运行时 ...

  3. 51Nod 算法马拉松21(迎新年)

    这次打算法马拉松是在星期五的晚上,发挥还算正常(废话,剩下的题都不会= =). 讲讲比赛经过吧. 8:00准时发题,拿到之后第一时间开始读. A配对,看上去像是二分图最大权匹配,一看范围吓傻了,先跳过 ...

  4. GDCPC2016 省赛随笔

    这是第一次参加省赛,第二次参加正式的组队赛. 昨晚很早就睡,早上挺早就睡不着醒了,内心既紧张又激动(虽然赛前和队友说尽力就好,但是还是很怕打铁啊).然后吃过早餐跟随学校大部队来到了中大.发现有好多学校 ...

  5. 装饰器模式&&ES7 Decorator 装饰器

    装饰器模式(Decorator Pattern)允许向一个现有的对象动态添加新的功能,同时又不改变其结构.相比JavaScript中通过鸡肋的继承来给对象增加功能来说,装饰器模式相比生成子类更为灵活. ...

  6. scrapy爬取58同城二手房问题与对策

    测试环境: win10,单机爬取,scrapy1.5.0,python3.6.4,mongodb,Robo 3T 其他准备: 代理池:测试环境就没有用搭建的flask抓代理,因为我找到的几个免费网站有 ...

  7. Luogu3613 睡觉困难综合征/BZOJ4811 Ynoi2017 由乃的OJ 树链剖分、贪心

    传送门 题意:给出一个$N$个点的树,树上每个点有一个位运算符号和一个数值.需要支持以下操作:修改一个点的位运算符号和数值,或者给出两个点$x,y$并给出一个上界$a$,可以选取一个$[0,a]$内的 ...

  8. Luogu1081 NOIP2012 开车旅行 倍增

    题目传送门 为什么NOIP的题目都这么长qwq 话说2012的D1T3和D2T3都是大火题啊qwq 预处理神题 对于这种跳跳跳的题目考虑使用倍增优化枚举.先预处理某个点之后距离最小和次小的城市,然后倍 ...

  9. 2018即将过去,立个flag

    过去的2018 自己有没有值得有意义的地方呢? 没有, 自己有没有认识新的异性朋友呢? 没有, 自己都在忙啥呢? 敲代码,然后发现敲坏了一个键盘,换了HHKB,一个字舒服,还有就是通宵把一部电视剧看完 ...

  10. 飞鱼48小时游戏创作嘉年华_厦门Pitch Time总结与收获

    一.48小时游戏开发前期准备 1,策划 明确美术队友和程序队友的水平,提需求的过程中尝试做减法,在保留核心玩法的基础上,看队友水平和时间判断是否添加需求. 策划是整个游戏团队的灵魂,也是开发的上限所在 ...

随机推荐

  1. 文心一言 VS 讯飞星火 VS chatgpt (183)-- 算法导论13.4 7题

    七.用go语言,假设用 RB-INSERT 将一个结点 x 插入一棵红黑树,紧接着又用 RB-DELETE 将它从树中删除.结果的红黑树与初始的红黑树是否一样?证明你的答案. 文心一言: 首先,我们需 ...

  2. 基于html5+javascript技术开发的房贷利率计算器,买房的码农们戳进来

    房贷计算器是一款专为购房者设计的实用工具应用,其主要功能是帮助用户详细计算房贷的还款金额.利息以及还款计划等.通过这款软件,用户可以更加便捷地了解到自己的还款情况和计划,从而更好地规划自己的财务.下面 ...

  3. Ubuntu 安装 MinIO

    MinIO是一个开源的高性能对象存储解决方案,支持多种安装方式,本例仅介绍最基础的单机安装方式. 下载安装文件 直接从MinIO官网下载安装文件. 下载服务端 wget https://dl.min. ...

  4. VUE字符串模板@click失效

    因为字符串模板不能被vue所渲染,所以这种方式行不通. 可采用组件的方式 父组件 <template> <div id="app"> <My v-fo ...

  5. asp.net core 开启gzip压缩

    // 第一步: 配置gzip与br的压缩等级为最优 services.Configure<BrotliCompressionProviderOptions>(options => { ...

  6. WebApi的输出结果重写 OnActionExecuted

    public override void OnActionExecuted(ActionExecutedContext context) { if (context.Exception != null ...

  7. [转帖]tidb 搭建私有镜像库

    https://docs.pingcap.com/zh/tidb/stable/tiup-mirror 在构建私有云时,通常会使用隔离的网络环境,此时无法访问 TiUP 的官方镜像.因此,TiUP 提 ...

  8. [转帖]DOCKER默认网段和主机网段冲突解决

    https://www.cnblogs.com/yinliang/p/13189334.html 一. docker默认网卡docker0 172.17.0.0可能会与主机冲突,这时候需要修改dock ...

  9. [转帖]kubernetes Flannel网络剖析

    https://plantegg.github.io/2022/01/19/kubernetes_Flannel%E7%BD%91%E7%BB%9C%E5%89%96%E6%9E%90/ cni(Co ...

  10. XCODE IOS 静态链接库替换升级

    XCODE 版本15.2. 一个很久需求没更新的IOS 应用,近来有新需求要开发. 拉下代码运行,出现了个BAD_ACCESS错误.出错的位置位于一个调用的第三方的.a静态库内部.因为调用代码并没有修 ...