首先题意很明显就不说了吧www

先说一下做这道题的经历

昨天下午和 blw 一起去食堂吃饭,和他产生了一点儿冲突,于是我考了一下他 P1119 (就是那道 Floyd),他很快做出来了,于是考了我这道题,并称其为“神仙结论题”

首先我 10min 就搞出了正解,然而 blw 说我 WA 了,我就很谔谔,或许是他搞错了吧qaq

并且吐槽一句这题结论不难想啊

首先这道题序列单调递增,所以不论怎么操作最后的序列都是单调不降的。

并且,还有一个明显能够得到的结论:

若 \([a_L+1<a_{L+1}][a_{R-1}+1<a_R][\sum_{i=L+1}^{R-1}[a_i<a_{i+1}]] = 1\),那么可以让 \(a_L\) 加一,\(a_R\) 减一。

证明很简单,略。

于是,我们每次就让最右边能够产生“山体滑坡”(本题的名称,也相当于最右边能够进行操作的数)减尽量多,最左边能够进行“山体滑坡”的数加上这个数。

于是左边的数就会尽量大,右边的数就会尽量小。

再由于题意,能够得到最多只有两个相邻的项相等。

于是我们就得出了以下算法:

先算出最所有项的和,然后算出 \(a_1\),由结论得:\(a_i = a_{i-1}+1\)。

这时用最开始所有项的和减去现在所有项的和,还会剩下 \(O(n)\) 的值。

从左往右一个一个填即可。

code:

#include<cstdio>
#include<cctype>
typedef long long ll;
const int M=1e6+5;
int n;
ll sum,ans,a[M];
inline ll read(){
ll a=0;char s;
while(!isdigit(s=getchar()));
while(a=a*10+(s^48),isdigit(s=getchar()));
return a;
}
signed main(){
int i;
n=read();
for(i=1;i<=n;++i)a[i]=read(),sum+=a[i];
sum-=1ll*n*(n+1)>>1;
ans=sum/n;sum-=ans*n;
for(i=1;i<=n;++i)a[i]=ans+i;
i=1;
while(sum--)++a[i++];
for(i=1;i<=n;++i)printf("%lld ",a[i]);
}

CF1392F题解的更多相关文章

  1. 2016 华南师大ACM校赛 SCNUCPC 非官方题解

    我要举报本次校赛出题人的消极出题!!! 官方题解请戳:http://3.scnuacm2015.sinaapp.com/?p=89(其实就是一堆代码没有题解) A. 树链剖分数据结构板题 题目大意:我 ...

  2. noip2016十连测题解

    以下代码为了阅读方便,省去以下头文件: #include <iostream> #include <stdio.h> #include <math.h> #incl ...

  3. BZOJ-2561-最小生成树 题解(最小割)

    2561: 最小生成树(题解) Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 1628  Solved: 786 传送门:http://www.lyd ...

  4. Codeforces Round #353 (Div. 2) ABCDE 题解 python

    Problems     # Name     A Infinite Sequence standard input/output 1 s, 256 MB    x3509 B Restoring P ...

  5. 哈尔滨理工大学ACM全国邀请赛(网络同步赛)题解

    题目链接 提交连接:http://acm-software.hrbust.edu.cn/problemset.php?page=5 1470-1482 只做出来四道比较水的题目,还需要加强中等题的训练 ...

  6. 2016ACM青岛区域赛题解

    A.Relic Discovery_hdu5982 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Jav ...

  7. poj1399 hoj1037 Direct Visibility 题解 (宽搜)

    http://poj.org/problem?id=1399 http://acm.hit.edu.cn/hoj/problem/view?id=1037 题意: 在一个最多200*200的minec ...

  8. 网络流n题 题解

    学会了网络流,就经常闲的没事儿刷网络流--于是乎来一发题解. 1. COGS2093 花园的守护之神 题意:给定一个带权无向图,问至少删除多少条边才能使得s-t最短路的长度变长. 用Dijkstra或 ...

  9. CF100965C题解..

    求方程 \[ \begin{array}\\ \sum_{i=1}^n x_i & \equiv & a_1 \pmod{p} \\ \sum_{i=1}^n x_i^2 & ...

随机推荐

  1. Ext原码学习之lang-Object.js

    // JavaScript Document (function(){ var TemplateClass = function(){}, ExtObject = Ext.Object = { cha ...

  2. [杭电新生赛]hgame-week1-web-wp

    hgame第一周总结 (官方wp更加简洁明了.直入主题,个人比较菜,所以过程繁琐 写好了一直没发qwq(就是懒(bushi) 一.Tetris plus! 题目里说玩到3000分就给flag,还真有点 ...

  3. ABCD四个顺序执行方法,拓展性延申

    今天在群里,有人问 有几个void返回值的方法,但是我想让这几个方法有执行顺序,要怎么处理,ABCD 四个方法,依次执行,但是这几个方法都是无返回值的 这个问题其实很简单,如果方法是同步方法,直接四个 ...

  4. Solution -「SV 2020 Round I」SA

    \(\mathcal{Description}\)   求出处 owo.   给定一个长度为 \(n\),仅包含小写字母的字符串 \(s\),问是否存在长度为 \(n\),仅包含小写字母的字符串 \( ...

  5. Idea个人配置

    Intellij IDEA配置 1. 优化导包配置 2. 取消tab页单行显示 多行显示更多的文件,方便查看. 3. 双斜杠注释改成紧跟代码头 4. 选中复制整行 原本只会复制你选中的代码,改完配置后 ...

  6. traceroute实用命令总结

    在工作中,我们经常会使用到traceroute进行追踪路由,从而判断网络的故障点,或者网络策略限制等原因.对于网络排查traceroute还是有很大用处的. 一.traceroute常用命令参数 用法 ...

  7. JS的一些对象

    JS是基于对象的语言.当然此时都说是面向对象的语言. 类:模板,原型对象    对象:具体的实例 原型对象: var user = { name:"xiaoxiao", age:5 ...

  8. Redis小秘密

    Redis小秘密 临渊羡鱼,不如退而织网. 一.Redis基本数据类型 想必很多人都能脱口而出String.List.Hash.Sorted Set和Set五种基本数据类型. 以及五大基本数据类型简要 ...

  9. Spring Boot 启动特别慢的问题

    Q:debug模式下代码编译没有问题,本来10 ms左右可以启动的项目,却耗时了3000多ms,why? A:删除项目中的断点,留几个要用的就行. 至于怎么一键删除所有断点,请自行搜索! 一度以为我的 ...

  10. [LeetCode]1281. 整数的各位积和之差

    给你一个整数 n,请你帮忙计算并返回该整数「各位数字之积」与「各位数字之和」的差. 示例 1: 输入:n = 234 输出:15 解释: 各位数之积 = 2 * 3 * 4 = 24 各位数之和 = ...