[cf1421E]Swedish Heroes
令$p_{i}$为最终$a_{i}$之前的系数($p_{i}\in \{-1,1\}$),则有$n+\sum_{i=1}^{n}[p_{i}=-1]\equiv 1(mod\ 3)$
证明:对于两个满足这一条件的区间(初始$1+0\equiv 1(mod\ 3)$),合并后有仍然满足这一条件
但并不是满足这个条件就一定可行,例如$p_{i}=\{1,-1,1,...,1\}$(长度超过1)时满足但不可行
对于$p_{i}\ne\{1,-1,1,...,1\}$,则其一定可以被拆成两段,使得都满足$n+\sum_{i=1}^{n}[p_{i}=-1]\equiv 2(mod\ 3)$(取反后即模3余1),然后分类讨论:
1.两段中没有$\{1,-1,1,...,1\}$,通过归纳法可以证明一定可行;
2.两端中有一段(可以有2段)是$\{1,-1,1,...,1\}$,不妨假设第二段是,那么可以将分割点+2,不改变两边对于3的模数,直至划分为$[1,n-1]$和$[n,n]$,同样可以用归纳法来证明
通过这些,我们就证明了对于$p_{i}\ne\{1,-1,1,...,1\}$,都一定可行
根据这一性质,设$f[i][j]$表示前$i$个数,$-1$的个数模3余$j$,强制前$i$个位置中与$\{1,-1,1,...,1\}$不同的最大值,转移考虑不同的位置即可,答案即$f[n][(1-n)%3]$

1 #include<bits/stdc++.h>
2 using namespace std;
3 #define N 200005
4 int n,a[N];
5 long long sum[N],f[N][3];
6 int main(){
7 scanf("%d",&n);
8 for(int i=1;i<=n;i++)scanf("%d",&a[i]);
9 if (n==1){
10 printf("%d",a[1]);
11 return 0;
12 }
13 for(int i=1;i<=n;i++)
14 if (i&1)sum[i]=sum[i-1]+a[i];
15 else sum[i]=sum[i-1]-a[i];
16 f[1][1]=-a[1];
17 f[1][0]=f[1][2]=-1e16;
18 for(int i=2;i<=n;i++){
19 for(int j=0;j<3;j++)f[i][j]=-1e16;
20 if (i&1)f[i][(i+1)/2%3]=sum[i-1]-a[i];
21 else f[i][(i-1)/2%3]=sum[i-1]+a[i];
22 for(int j=0;j<3;j++)f[i][j]=max(f[i][j],max(f[i-1][j]+a[i],f[i-1][(j+2)%3]-a[i]));
23 }
24 printf("%lld",f[n][(N-3-n)%3]);
25 }
[cf1421E]Swedish Heroes的更多相关文章
- Codeforces Round #676 (Div. 2) A - D个人题解(E题待补)
1421A. XORwice 题目链接:Click Here // Author : RioTian // Time : 20/10/18 #include <bits/stdc++.h> ...
- 【Codeforces717F】Heroes of Making Magic III 线段树 + 找规律
F. Heroes of Making Magic III time limit per test:3 seconds memory limit per test:256 megabytes inpu ...
- China’s movie heroes 《红海行动》展现中国英雄本色
Recent years have seen a trend for big military movies. Whether it was last year’s British hit Dunki ...
- 超能英雄第一至四季/全集Heroes迅雷下载
本季第一.二.三.四季 Heroes Season (2006-2009) 看点:<Heroes>是NBC电视台于2006年九月开播的最新科幻电视剧.Heroes(中文剧名为“英雄”或“天 ...
- Codeforces 717.F Heroes of Making Magic III
F. Heroes of Making Magic III time limit per test 3 seconds memory limit per test 256 megabytes inpu ...
- News Master-DC and Marvel they are super heroes mother
News Master Good evening everyone,I’m Jason,I’m glad to be news master to share something, Tonight I ...
- 2002-2003 ACM-ICPC Northeastern European Regional Contest (NEERC 02) H Heroes Of Might And Magic (隐含dp)
问题是求一个方案,实际隐含一个dp.法力是递减的,所以状态是DAG,对于一个确定的状态,我们贪心地希望英雄的血量尽量大. 分析:定义状态dp[i][p][h]表示是已经用了i的法力值,怪兽的位置在p, ...
- Angular2.x-显示heroes列表
在此页面中,您将展开Tour of Heroes应用程序以显示heroes列表,并允许用户选择heroes并显示heroes的详细信息. 6.X 你需要一些heroes来展示. 最终你会从远程数据服务 ...
- 哥廷根: Heroes in My Heart
哥廷根: Heroes in My Heart (本篇的文字部分均出自北大未名BBS的连载 Heroes in my heart 中哥廷根的部分,作者 ukim. 话说,有任何人能够联系上 ukim ...
随机推荐
- node二进制安装
你可能因为重装系统node的npm不管用, 但是node管用, 我不知道为什么, 但是 二进制安装就好了 管他那么多 下面这些网址你就可以了 https://blog.csdn.net/wocaoni ...
- 洛谷1501 Tree II(LCT,路径修改,路经询问)
这个题是一个经典的维护路径信息的题,对于路径上的修改,我们只需要把对应的链\(split\)上来,然后修改最上面的点就好,注意pushdown的时候的顺序是先乘后加 然后下传乘法标记的时候,记得把对应 ...
- FastAPI 学习之路(十)请求体的字段
系列文章: FastAPI 学习之路(一)fastapi--高性能web开发框架 FastAPI 学习之路(二) FastAPI 学习之路(三) FastAPI 学习之路(四) FastAPI 学习之 ...
- Appium iOS 原理
一.iOS Appium 原理 1.1 iOS 9.3 系统之前自动化测试 1.1.1 Native 自动化 这是 iOS 9.3 系统之前自动化测试的架构模式.通过 Android Appium 原 ...
- C#开发BIMFACE系列50 Web网页中使用jQuery加载模型与图纸
BIMFACE二次开发系列目录 [已更新最新开发文章,点击查看详细] 在前一篇博客<C#开发BIMFACE系列49 Web网页集成BIMFACE应用的技术方案>中介绍了目前市场主流 ...
- XiaoXin 13Pro-Hackintosh 小新13pro崇尚极简的黑苹果双系统
Lenovo XiaoXin-13-Pro-Hackintosh 关键词:Hackintosh XiaoXin EFI Tutorial Lenovo 以下提及的EFI及其他部分文件见github仓库 ...
- 【UE4 材质】一些小功能
利用材质实现物体自转 物体外轮廓高亮 使用postprocess+custom depth(防遮挡) https://www.tomlooman.com/soft-outlines-in-ue4/ h ...
- 【UE4 C++】 解析与构建 Json 数据
准备条件 Json 格式 { "Players":[ { "Name": "Player1", "health": 20 ...
- UltraSoft - Beta - Postmortem事后分析
UltraSoft - Beta - PostMORTEM 设想和目标 我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述? 解决的问题和定义都在[软软软]功能规格说明书 ...
- 【二食堂】Beta - Scrum Meeting 7
Scrum Meeting 7 例会时间:5.19 18:30~18:50 进度情况 组员 当前进度 今日任务 李健 1. 文本区域的前后端对接完成,bug已经修复issue2. 自定义关系的添加与删 ...