Tree Burning

题目链接https://atcoder.jp/contests/agc030/tasks/agc030_b

数据范围:略。


题解

开始以为是左右左右这样,发现过不去样例。

看了样例之后,觉得是:看左边右边哪个比较长,走长的那个。

发现过了第一个样例,过不去第二个了....

看了看第二个样例,又画了画第三个样例,加上枫哥在给我这道题之前的提示:你要大胆猜啊...

发现:一定是先往一个方向连续走几个,然后左右横跳。

这个就对了,用数学归纳法容易证明。

所以我们只需要开始逆时针连续走了多少个,然后用什么前缀和啥的随便求一求就好了。

求完了之后,把序列反转再来一次即可。

代码

#include <bits/stdc++.h>

#define N 1000010 

using namespace std;

typedef long long ll;

char *p1, *p2, buf[100000];

#define nc() (p1 == p2 && (p2 = (p1 = buf) + fread(buf, 1, 100000, stdin), p1 == p2) ? EOF : *p1 ++ )

int rd() {
int x = 0, f = 1;
char c = nc();
while (c < 48) {
if (c == '-')
f = -1;
c = nc();
}
while (c > 47) {
x = (((x << 2) + x) << 1) + (c ^ 48), c = nc();
}
return x * f;
} ll m; int n; ll a[N]; ll bfr[N], ans; void solve() {
bfr[0] = 0;
for (int i = 1; i <= n; i ++ ) {
bfr[i] = bfr[i - 1] + a[i];
}
for (int i = 1; i <= n; i ++ ) {
ll mdl;
if (i & 1) {
int x = (i - 1) >> 1;
mdl = ((ll)m * x - (bfr[n] - bfr[n - x])) * 2 + a[n - x] + (bfr[n - x - 1] - bfr[n - x - x - 1]) * 2;
}
else {
int x = i >> 1;
mdl = (m * (x - 1) - (bfr[n] - bfr[n - x + 1])) * 2 + ((ll)m - a[n - x + 1]) + (bfr[n - x] - bfr[n - x - x]) * 2;
}
ans = max(ans, mdl);
}
} int main() {
m = rd(), n = rd();
for (int i = 1; i <= n; i ++ ) {
a[i] = rd();
}
solve();
for (int i = 1; i <= n; i ++ ) {
a[i] = m - a[i];
}
reverse(a + 1, a + n + 1);
solve();
cout << ans << endl ;
return 0;
}

[Agc030B]Tree Burning_贪心的更多相关文章

  1. 2020牛客暑期多校训练营 第二场 C Cover the Tree 构造 贪心

    LINK:Cover the Tree 最受挫的是这道题,以为很简单 当时什么都想不清楚. 先胡了一个树的直径乱搞的贪心 一直过不去.后来意识到这类似于最经典长链剖分优化贪心的做法 然后那个是求最大值 ...

  2. 【AtCoder AGC023F】01 on Tree(贪心)

    Description 给定一颗 \(n\) 个结点的树,每个点有一个点权 \(v\).点权只可能为 \(0\) 或 \(1\). 现有一个空数列,每次可以向数列尾部添加一个点 \(i\) 的点权 \ ...

  3. codeforces #530 D(Sum in the tree) (树上贪心)

    Mitya has a rooted tree with nn vertices indexed from 11 to nn, where the root has index 11. Each ve ...

  4. uoj【UNR #3】To Do Tree 【贪心】

    题目链接 uojUNR3B 题解 如果不输出方案,是有一个经典的三分做法的 但是要输出方案也是可以贪心的 设\(d[i]\)为\(i\)节点到最深的儿子的距离 贪心选择\(d[i]\)大的即可 #in ...

  5. CodeForces - 1098.DIV1.C: Construct a tree(贪心,构造)

    Misha walked through the snowy forest and he was so fascinated by the trees to decide to draw his ow ...

  6. [BZOJ2654]tree 最小生成树+贪心

    2654: tree Time Limit: 30 Sec  Memory Limit: 512 MBSubmit: 2435  Solved: 1011[Submit][Status][Discus ...

  7. Codeforces 196C Paint Tree(贪心+极角排序)

    题目链接 Paint Tree 给你一棵n个点的树和n个直角坐标系上的点,现在要把树上的n个点映射到直角坐标系的n个点中,要求是除了在顶点处不能有线段的相交. 我们先选一个在直角坐标系中的最左下角的点 ...

  8. [CSP-S模拟测试]:Tree(贪心)

    题目描述 给定一颗$n$个点的树,树边带权,试求一个排列$P$,使下式的值最大 $$\sum \limits_{i=1}^{n-1}maxflow(P_i,P_{i+1})$$ 其中$maxflow( ...

  9. Codeforces Round #530 (Div. 2) D. Sum in the tree 树上贪心

    D. Sum in the tree 题意 给出一颗树,奇数层数的点有值,值代表从1到该点的简单路的权值的和,偶数层数的点权值被擦去了 问所有节点的和的最小可能是多少 思路 对于每一个-1(也就是值未 ...

随机推荐

  1. SIGAI深度学习第五集 自动编码器

    深度学习模型-自动编码器(AE),就是一个神经网络的映射函数,f(x)——>y,把输入的一个原始信号,如图像.声音转换为特征. 大纲: 自动编码器的基本思想 网络结构 损失函数与训练算法 实际使 ...

  2. cursor: hand和cursor:pointer的区别

    cursor:hand 与 cursor:pointer 的效果是一样的,都像光标指向链接一样,光标变成手行. cursor:hand :IE完全支持.但是在firefox是不支持的,没有效果. cu ...

  3. 实战 Prometheus 搭建监控系统

    实战 Prometheus 搭建监控系统 Prometheus 是一款基于时序数据库的开源监控告警系统,说起 Prometheus 则不得不提 SoundCloud,这是一个在线音乐分享的平台,类似于 ...

  4. LOJ #6669 Nauuo and Binary Tree (交互题、树链剖分)

    题目链接 https://loj.ac/problem/6669 题解 Orz yyf太神了,出这种又有意思又有意义的好题造福人类-- 首先\(n\)次询问求出所有节点的深度. 考虑按深度扩展(BFS ...

  5. 域渗透-企业应用SAML签名攻击

    在项目中遇到SAML企业应用      想留个后门时候一脸懵 随便的整理记录 记录项目中SAML渗透的知识点. 0x01 前置知识  SAML单点登陆 SAML(Security Assertion ...

  6. mxnet快速入门教程

    前段时间工作中用到了MXnet,然而MXnet的文档写的实在是.....所以在这记录点东西,方便自己,也方便大家. 一.MXnet的安装及使用 开源地址:https://github.com/dmlc ...

  7. docker-compose ELK+Filebeat查看docker及容器的日志

    我目前所在公司开发团队比较小,为集团下面的工厂开发了一套小的系统,跑在一台CentOS服务器上,服务器搭建了docker环境,安装了docker-compose,但在日志处理方面,暂时没有一个好的方法 ...

  8. mysql索引分类

    mysql索引分类 一.总结 一句话总结: 主键索引:设定为主键后数据库会自动建立索引,innodb为聚簇索引 单值索引:一个索引只包含单个列,一个表可以有多个单列索引:CREATE INDEX id ...

  9. Mac下安装MySQL 5.6.40

    Mac下安装MySQL 5.6.40 - 干勾鱼的CSDN博客 - CSDN博客   原创 Mac下安装MySQL 5.6.40 2018-06-18 10:34:03 我是干勾鱼 阅读数 5927 ...

  10. MobileNet V2深入理解

    转载:https://zhuanlan.zhihu.com/p/33075914 MobileNet V2 论文初读 转载:https://blog.csdn.net/wfei101/article/ ...