令$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的更多相关文章

  1. Codeforces Round #676 (Div. 2) A - D个人题解(E题待补)

    1421A. XORwice 题目链接:Click Here // Author : RioTian // Time : 20/10/18 #include <bits/stdc++.h> ...

  2. 【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 ...

  3. China’s movie heroes 《红海行动》展现中国英雄本色

    Recent years have seen a trend for big military movies. Whether it was last year’s British hit Dunki ...

  4. 超能英雄第一至四季/全集Heroes迅雷下载

    本季第一.二.三.四季 Heroes Season (2006-2009) 看点:<Heroes>是NBC电视台于2006年九月开播的最新科幻电视剧.Heroes(中文剧名为“英雄”或“天 ...

  5. 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 ...

  6. 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 ...

  7. 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, ...

  8. Angular2.x-显示heroes列表

    在此页面中,您将展开Tour of Heroes应用程序以显示heroes列表,并允许用户选择heroes并显示heroes的详细信息. 6.X 你需要一些heroes来展示. 最终你会从远程数据服务 ...

  9. 哥廷根: Heroes in My Heart

    哥廷根: Heroes in My Heart (本篇的文字部分均出自北大未名BBS的连载 Heroes in my heart 中哥廷根的部分,作者 ukim. 话说,有任何人能够联系上 ukim ...

随机推荐

  1. After Effects 图层属性及属性组结构详解

    根据结构类型的属性分类 在 After Effects 的脚本开发中,图层的属性可被区分为三种类型:PROPERTY.INDEXED_GROUP 和 NAMED_GROUP .通过使用app.proj ...

  2. 学校选址(ArcPy实现)

    一.背景 合理的学校空间位置布局,有利于学生的上课与生活.学校的选址问题需要考虑地理位置.学生娱乐场所配套.与现有学校的距离间隔等因素,从总体上把握这些因素能够确定出适宜性比较好的学校选址区. 二.目 ...

  3. 题解 ABC216H Random Robots

    link Solution 考虑一个不合法方案,它一定最后位置的逆序对数不为 \(0\),而且可以发现的是,存在对称方案使得最后逆序对数奇偶性不同,所以我们如果加上 \((-1)\)^{\sigma( ...

  4. 洛谷1501 Tree II(LCT,路径修改,路经询问)

    这个题是一个经典的维护路径信息的题,对于路径上的修改,我们只需要把对应的链\(split\)上来,然后修改最上面的点就好,注意pushdown的时候的顺序是先乘后加 然后下传乘法标记的时候,记得把对应 ...

  5. appium+Andriod环境搭建遇到问题

    报错:Caused by: org.openqa.selenium.WebDriverException: An unknown server-side error occurred while pr ...

  6. [NOIP2013 提高组] 华容道 P1979 洛谷

    [NOIP2013 提高组] 华容道 P1979 洛谷 强烈推荐,更好的阅读体验 经典题目:spfa+bfs+转化 题目大意: 给出一个01网格图,和点坐标x,y空格坐标a,b,目标位置tx,ty要求 ...

  7. VS Code Just My Code Debugging

    VS Code Just My Code Debugging VS Code for C++ doesn't support Just My Code Refer here: Add support ...

  8. [Git系列] 前言

    Git 简介 Git 是一个重视速度的分布式版本控制和代码管理系统,最初是由 Linus Torvalds 为开发 Linux 内核而设计并开发的,是一款遵循二代 GUN 协议的免费软件.这一教程会向 ...

  9. anaconda+pytorch安装

    环境配置说明: 因项目需要,需要写一个说明文档交付公司人员,指导其进行环境的安装 1. 安装 Anaconda 进入清华开源软件镜像站,其网址如下:https://mirrors.tuna.tsing ...

  10. Java:LinkedList类小记

    Java:LinkedList类小记 对 Java 中的 LinkedList类,做一个微不足道的小小小小记 概述 java.util.LinkedList 集合数据存储的结构是循环双向链表结构.方便 ...