Seq

(seq.cpp/c/pas)

题目描述 Description

木吉要去征讨VAN様,所以他现在需要从他身边的人中选出若干位陪同。现在有\(n\)个人站成一行,木吉要从其中选出\(2\)批在这一行中连续的人(不能不选),且一个人不能两次都被选。每位人有一个战斗力\(A_i\),\(A_i\)可正可负。木吉团队的战斗力即为选择的人的\(A_i\)之和。
现在木吉想要知道最大的战斗力是多少。

输入描述 Input Description (seq.in)

第一行为人数\(n\),第二行为\(n\)个整数依次为\(A_1,A_2,\cdots,A_n\)

输出描述 Output Description (seq.out)

一个整数,即为最大的战斗力之和

样例输入 Sample Input

6
10 -5 6 0 0 1

样例输出 Sample Output

17

样例解释 Sample Interpretation

第一批只选第一个人,第二批选第三、四、五、六个人

数据范围 Data Size

对于\(30\%\)的数据,\(n\le 50\),\(A_i\)的绝对值不超过\(1000\)
对于\(60\%\)的数据,\(n\le 5000\),\(A_i\)的绝对值不超过\(100000\)
对于\(100\%\)的数据,\(n\le 100000\),\(A_i\)的绝对值不超过\(1000000000\)

题解

这张试卷中的人物名有点毒瘤

一眼看是一道dp,于是开始大力转移。

由于是分两批,于是想到需要分段处理。

第\(i\)号位置为最右端点的方案中最大战斗力为\(ll[i]\),同理定义\(rr[i]\)。

那么显然有:\(ll[i]=x[i]+max(ll[i-1],0),rr[i]=x[i]+max(rr[i+1],0)\)(贪心一下即可:如果前一位的最大值大于0,那么就加上前一位;否则就不加)。

设\(lll[i]\)为前\(i\)位的最优方案,同理定义\(rrr[i]\)(好吧我承认我的变量名有毒)。

于是我们就可以很容易地推出:\(lll[i]=max(lll[i-1],ll[i]),rrr[i]=max(rrr[i+1],rr[i])\)(选与不选第\(i\)位)。

最终,我们枚举断点(分成两段处理,取最大值):\(ans=max(ans,lll[i]+rrr[i+1])\)。

代码如下

#include <cstdio>
#include <cctype>
#include <iostream>using namespace std;typedef long long LL;#define dd c=getchar()
inline void read(LL& x)
{x=0;int dd;bool f=false;for(;!isdigit(c);dd)if(c=='-')f=true;for(;isdigit(c);dd) x=(x<<1)+(x<<3)+(c^48);if(f)x=-x;return;
}
#undef ddconst LL INF=0x3f3f3f3f3f3f3f3f;
const LL maxn=100005;LL ll[maxn],rr[maxn];
LL lll[maxn],rrr[maxn];
LL x[maxn];int main()
{freopen("seq.in","r",stdin);freopen("seq.out","w",stdout);LL n;read(n);lll[0]=rrr[n+1]=-INF;for(LL i=1;i<=n;++i){read(x[i]);ll[i]=x[i]+max(ll[i-1],0LL);}for(LL i=n;i;--i)rr[i]=x[i]+max(rr[i+1],0LL);LL ans=-INF;for(LL i=1;i<=n;++i)lll[i]=max(lll[i-1],ll[i]);for(LL i=n;i;--i)rrr[i]=max(rrr[i+1],rr[i]);for(int i=1;i<n;++i)ans=max(ans,lll[i]+rrr[i+1]);printf("%lld",ans);fclose(stdin);fclose(stdout);return 0;
}

转载于:https://www.cnblogs.com/pfypfy/p/8903234.html

20180418模拟赛T1——Seq相关推荐

  1. 洛谷 10月 csp-s 模拟赛 T1,T2解析及代码

    洛谷 10月 csp-s 模拟赛 T1,T2解析及代码 T1 Magenta Potion 题目描述 给定一个长为 nnn 的整数序列 aaa,其中所有数的绝对值均大于等于 222.有 qqq 次操作 ...

  2. 纪中20日c组模拟赛T1 2121. 简单游戏

    T1 2121. 简单游戏 (File IO): input:easy.in output:easy.out 时间限制: 1000 ms  空间限制: 262144 KB  具体限制 Goto Pro ...

  3. 【2019.7.16 NOIP模拟赛 T1】洗牌(shuffle)(找环)

    找环 考虑每次洗牌其实是一次置换的过程,而这样必然就会有循环出现. 因此我们直接通过枚举找出每一个循环,询问时只要找到环上对应的位置就可以了. 貌似比我比赛时被卡成\(30\)分的倍增简单多了? 代码 ...

  4. 20161023 NOIP 模拟赛 T1 解题报告

    Task 1.纸盒子 (box.pas/box.c/box.cpp) [题目描述] Mcx是一个有轻度洁癖的小朋友.有一天,当他沉溺于数学卷子难以自拔的时候,恍惚间想起在自己当初学习概率的时候准备的一 ...

  5. 2019-3-15 模拟赛 T1

    题意 给你一个数 \(k\) ,\(n\) 个桶,有 \(m\) 个桶有容量上限 \(w_i\) ,其它桶则没有.求把数拆开放到各个桶里,最终得到序列的方案数. 数据范围 : \(n,k<=5* ...

  6. 7.9模拟赛T1图的遍历(dfs)

    图的遍历(dfs) [题目描述] 对于一个有向图G来说,我们存在一个经典的遍历算法,就是DFS (深度优先搜索遍历).将G以1号点为起点进行DFS后,我们可以 得到G的一棵DFS遍历树T.就此,我们可 ...

  7. ztz11的noip模拟赛T1:愤怒的XiaoX

    链接: https://www.luogu.org/problemnew/show/U47231 思路: 这道题其实就是一道双Lazy线段树裸题 因为我们知道,当k一定时,取反偶数次最后k位等于不取反 ...

  8. 9.20模拟赛T1[聪明的小偷]

    聪明的小偷 (thief.pas/c/cpp) 袋,首先他会先检查每个口袋是不是都有硬币,之后他会计算出第 1 个和第 2 个口袋的硬币数量之和,第 2 个与第 3 个口袋的硬币数量和,如此直到第 n ...

  9. 【信奥题库 NOIP 2020 在线模拟赛 T1】有趣的函数

    题目 https://www.oitiku.com/simulate-contest/5/16 思路 考试的时候思考方向错了,以为是递推 我们可以枚举有多少个e,那么可以计算出来要多少个2 然后我们就 ...

最新文章

  1. java迭代器在哪个包里面,java.util.LinkedList.listIterator()方法实例
  2. 武汉python培训哪一家好一些-武汉哪个Python培训机构比较好?
  3. MySQL中如何创建表与删除表
  4. ftp邮箱里的文件无法连接服务器,服务器FTP不能连接的一些解决方法 - 新网数据 - 主机,域名,邮箱提供商 - www.nIDC.cn...
  5. 视频全程:哈萨比斯首次公开解读AlphaZero
  6. gridview分组android,安卓使用GridView实现网格视图
  7. 【课本】【No.3】随机向量定义、联合分布函数、边缘分布、统计特征的分布函数的差分,独立性、离散型条件分布列,连续型分布函数与密度函数、随机向量的函数分布
  8. 希哲求大神教 技术额
  9. 小旋风万能蜘蛛池 小霸王蜘蛛池快速收录源码
  10. 奥西750服务器系统,奥西TDS750驱动
  11. skiller3.31 发布
  12. 阿里玄难:面向不确定性的软件设计几点思考
  13. flutter 学习之项目一
  14. 并查集+思维——Destroying Array
  15. 2022-03-25 Python作业3
  16. 【航天信息开票软件V3.0金税盘版安装恢复过程】有坑有心得
  17. 2021年安全生产模拟考试(建筑安全员B证-项目负责人模拟考试题库)安考星
  18. hMailServer设置
  19. redux与flux
  20. Java多级动态导出表格,优化版

热门文章

  1. 计算机专业吐槽搞笑,关于吐槽考试的搞笑段子有哪些
  2. 阿里云ubuntu18.04安装最新版本nodejs
  3. 推荐一个越级好的JAVA自学网站
  4. ipadnbsp;nbsp;ios6以上nbsp;屏幕旋转控制
  5. 《倒转金字塔》足球战术发展史笔记
  6. 华为设备配置HoVPN
  7. 2008年美国十大科技新闻
  8. 网络直播,这个行业怎么了?
  9. 苹果home键在哪里设置_苹果手机Home键失灵指纹无法录入,一招搞定,录入指纹更灵敏...
  10. electron 获取屏幕