题目链接:https://codeforces.ml/contest/1392/problem/F

题目大意:

给出N座山峰的高度h_i,之后重复进行下面的操作:

若存在一个位置i满足:

那么i高度就会+1,i+1位置就会+1

重复进行上述操作,直到不可进行为止

输出最后的序列

题目思路:

只想对了一个方向而已..emm

考虑最后的状态必然满足:相邻每个位置大小最多差1,否则会继续进行上述的操作

根据最终状态出发考虑去构造最终数列

结论:

最终序列中,满足hi == h_i+1 的最多有一对

关于题解好理解版本?

首先可以明确,在任何时间,任何位置使用该操作,并不影响最后的序列操作结果

Part 1 :

如果不存在相等的一对,那么就会从可以操作的位置开始,一直操作到1。| 因为序列单调递增

最后的状态即为该位置--,位置1++;

这就会使得可能第一次出现相等的一对是位置1与位置2

Part 2 :

现在存在相等的一对:(绝对是从位置1与位置2开始)

那么上述操作就变成了从一个可操作的位置开始,遇到相等就停止了,也就是

如果存在,可操作位置是pos ,那么操作的结果就是 :

所以这时候可能会出现

也就说终止位置提前,并且相等对数没变

所以总体操作就是:

如果没出现相等的一对,那么可能会出现相等的一对

如果出现了相等的一对,那么相等对数-1或者不变

综上:最终状态最多包含一对相等的

如果还不懂,建议手写模拟

接下来就好办了,确定了只有一对,那么就可以构造这个等差序列了,此时就只和sum有关系了

首先构造一个公差为1的等差序列,之后的事情便是构造相等的对数

我们可以首先将序列都-a[1]-i+1 ,那么此时剩下的可以理解为每个数距离目标数差值相同

所以求一下平均值即可

最后如果还有剩余,那么就从1开始每个+1,此时不会影响最终答案的合法性

Code:

/*** keep hungry and calm CoolGuang!***/
#pragma GCC optimize(3)
#include <bits/stdc++.h>
ll n,m,p;
ll num[maxn],res[maxn];
int main(){read(n);ll sum = 0;for(int i=1;i<=n;i++){read(num[i]);sum += num[i]-num[1]-i+1;}for(int i=1;i<=n;i++)res[i] = num[1] + i-1 + (sum/n);for(int i=1;i<=sum%n;i++)res[i]++;for(int i=1;i<=n;i++)printf("%lld ",res[i]);printf("\n");return 0;
}
/**
4 1 2 3 5
***/

【Codeforces 1392F】Omkar and Landslide | 思维、结论相关推荐

  1. Codeforces 1077B Disturbed People(思维题)

    Codeforces 1077B Disturbed People(思维题) There is a house with nn flats situated on the main street of ...

  2. Codeforces Round #655 (Div. 2) D. Omkar and Circle 思维 + 奇偶贪心

    传送门 题意: 给一个长为nnn的数组(nnn为奇数),iii与i−1i-1i−1相邻,111与nnn相邻,每次选择一个位置,将这个位置的值变成与它相邻的两个位置的和,让后将相邻位置删掉.求最终剩下一 ...

  3. CodeForces - 160D Edges in MST(思维+tarjan/树链剖分+线段树)

    题目链接:点击查看 题目大意:给出一张 n 个点 m 条边组成的带权无向图,现在对于每条边来说,确定一下其分类: 一定是最小生成树上的边 可能是最小生成树上的边 一定不是最小生成树的边 题目分析:两种 ...

  4. 【CodeForces - 202A】LLPS (思维,字符串)

    题干: This problem's actual name, "Lexicographically Largest Palindromic Subsequence" is too ...

  5. codeforces 848B Rooter's Song 思维题

    http://codeforces.com/problemset/problem/848/B 给定一个二维坐标系,点从横轴或纵轴垂直于发射的坐标轴射入(0,0)-(w,h)的矩形空间.给出点发射的坐标 ...

  6. CF1536F - Omkar and Akmar——博弈结论、组合数学

    F - Omkar and Akmar 题目描述 Translated by OneInDark \text{Translated by OneInDark} Translated by OneInD ...

  7. Codeforces 846 A Curriculum Vitae 思维 暴力

    题目链接: http://codeforces.com/contest/846/problem/A 题目描述: 给你一个串, 你可以做删除操作, 要求结果串0不能在1的右边, 问最多可以剩几个数字 解 ...

  8. Codeforces 861 B Which floor? 思维

    题目链接: http://codeforces.com/contest/861/problem/B 题目描述: 每个楼梯上有相同数量的数, 都是从1开始, 给你m个不矛盾的信息, 问你能不能判断n在第 ...

  9. CodeForces - 1494E A-Z Graph(构造+思维)

    题目链接:https://vjudge.net/problem/CodeForces-1494E 题目大意:给出一个初始时只有 nnn 个点的有向带权图,需要执行 mmm 次操作,每次操作分为下列三种 ...

最新文章

  1. Arch Linux中安装Anaconda
  2. 你还在Java8中使用循环语句吗?
  3. 领域驱动DDD原理简介与实践
  4. 聚焦LS-MIMO的四大层面,浅谈5G关键技术
  5. 5.2.5 标准的原子整型的相关操作
  6. u盘安装系统win2019服务器系统,U盘如何安装原版Windows server 2019?
  7. UE5中提示Video Memory Has Been exhausted解决方案
  8. OpenState安装及 Port Knocking 实验
  9. Mac下Tesseract-OCR文字识别新手使用入门
  10. 全国域名注册机构查询
  11. 蓝牙发射功率dBm换算,发射总能量公式
  12. gcc报invalid operands of types ‘<unresolved overloaded function type>‘ and ‘int‘ to binary ‘operator<
  13. 留学生日常英语46~50
  14. 赢在测试:中国软件测试先行者之道
  15. 诗经与当代流行歌曲相通之处—重章叠句
  16. Android Studio 3.1 正式版发布
  17. 数字化时代-9:从四次工业革命看未来行业的方向
  18. php将您重定向的次数过多,Laravel路线重定向次数过多
  19. 商机 | 大数据/政务云采购清单 招标8起,最高招标价为1300万(12.2-12.5)
  20. win10如何打开摄像头_Win10专业版如何开启自带录屏功能?Win10录屏功能的开启方法...

热门文章

  1. 基于Python统计红楼梦中人物信息
  2. ps 填充画板背景色
  3. 灰狼算法(GWO)优化支持向量机的数据回归预测,GWO-SVM回归预测,多输入单输出模型。
  4. 拼多多笔试题 回合制角色扮演
  5. python 期货现货差价监测_大宗商品现货数据不好拿?商品季节性难跟踪?Python爬虫一键解决没烦恼...
  6. lisp不是函授型语言_讨论:为什么Lisp语言不再被广泛使用
  7. 惊了,MATLAB竟能制作如此方便的划词翻译工具???
  8. 管理 - STAR法则
  9. 关于手机店、电脑城,存在的物联卡的情况说明
  10. Python 计时器(秒钟、秒表)