题目大意:有$n$根竹竿,第$i$根竹竿在$i$位置,第​$i$根竹竿高度为​$h_i$,每根竹竿可以向左倒或向右倒,问有几对竹竿倒下后顶端重合。

题解:求出每根竹竿倒下后的位置,离散化,记录一下每个点出现次数就行了

卡点:没开$long\;long$

C++ Code:

#include <cstdio>
#include <algorithm>
#define maxn 200010
int n, m;
int l[maxn], r[maxn];
int v[maxn << 1], tot;
long long cnt[maxn << 1], ans;
int main() {scanf("%d%d", &n, &m);for (int i = 1; i <= n; i++) {int a;scanf("%d", &a);v[++tot] = l[i] = i - a;v[++tot] = r[i] = i + a;}tot = (std::sort(v + 1, v + tot + 1), std::unique(v + 1, v + tot + 1) - v - 1); for (int i = 1; i <= n; i++) {l[i] = std::lower_bound(v + 1, v + tot + 1, l[i]) - v;r[i] = std::lower_bound(v + 1, v + tot + 1, r[i]) - v;ans += cnt[l[i]];if (l[i] != r[i]) {ans += cnt[r[i]];cnt[r[i]]++;}cnt[l[i]]++;}printf("%lld\n", ans);return 0;
}

  

转载于:https://www.cnblogs.com/Memory-of-winter/p/9703330.html

[洛谷P4889]kls与flag相关推荐

  1. 洛谷 - 试炼场(全部题目备份)

    整理的算法模板合集: ACM模板 目录 1.新手村 1 - 1 洛谷的第一个任务 1 - 2 顺序与分支 1 - 3 循环!循环!循环! 1 - 4 数组 1 - 5 简单字符串 1 - 6 过程函数 ...

  2. 洛谷P4609 [FJOI2016]建筑师 【第一类斯特林数】

    题目链接 洛谷P4609 题解 感性理解一下: 一神带\(n\)坑 所以我们只需将除了\(n\)外的\(n - 1\)个元素分成\(A + B - 2\)个集合,每个集合选出最大的在一端,剩余进行排列 ...

  3. Bzoj4016/洛谷P2993 [FJOI2014] 最短路径树问题(最短路径问题+长链剖分/点分治)

    题面 Bzoj 洛谷 题解 首先把最短路径树建出来(用\(Dijkstra\),没试过\(SPFA\)\(\leftarrow\)它死了),然后问题就变成了一个关于深度的问题,可以用长链剖分做,所以我 ...

  4. 洛谷P3391文艺平衡树(Splay)

    题目传送门 转载自https://www.cnblogs.com/yousiki/p/6147455.html,转载请注明出处 经典引文 空间效率:O(n) 时间效率:O(log n)插入.查找.删除 ...

  5. 洛谷P2522 [HAOI2011]Problem b(莫比乌斯反演)

    传送门 我们考虑容斥,设$ans(a,b)=\sum_{i=1}^a\sum_{j=1}^b[gcd(a,b)==k]$,这个东西可以和这一题一样去算洛谷P3455 [POI2007]ZAP-Quer ...

  6. Java 洛谷 P1089 津津的储蓄计划讲解

    题目描述 津津的零花钱一直都是自己管理.每个月的月初妈妈给津津300300元钱,津津会预算这个月的花销,并且总能做到实际花销和预算的相同. 为了让津津学习如何储蓄,妈妈提出,津津可以随时把整百的钱存在 ...

  7. 洛谷 【P1252】马拉松接力赛

    洛谷 [P1252]马拉松接力赛 题目描述 某城市冬季举办环城25km马拉松接力赛,每个代表队有5人参加比赛,比赛要求每个的每名参赛选手只能跑一次,一次至少跑1km.最多只能跑10km,而且每个选手所 ...

  8. 洛谷P3763 [Tjoi2017]DNA 【后缀数组】

    题目链接 洛谷P3763 题解 后缀数组裸题 在BZOJ被卡常到哭QAQ #include<algorithm> #include<iostream> #include< ...

  9. 洛谷P4630 [APIO2018] Duathlon 铁人两项 【圆方树】

    题目链接 洛谷P4630 题解 看了一下部分分,觉得树的部分很可做,就相当于求一个点对路径长之和的东西,考虑一下能不能转化到一般图来? 一般图要转为树,就使用圆方树呗 思考一下发现,两点之间经过的点双 ...

最新文章

  1. 169v 条目不存在_存在麒麟?牛顿烈焰激光剑理论!生活中的科学思维
  2. mac下dashboard小控件开发实例(附源码)
  3. CTF入门--二进制
  4. 一键分享手机代码_通过广告路由器指定手机浏览器自动认证WIFI上网 附代码
  5. 11个Javascript树形菜单
  6. mysql数据表最高速迁移,mysql的存储引擎为:myisam
  7. word文档解密_加密的pdf如何打印?一键解密,我有好方法!
  8. php条件语句中大括号必须,PHP条件,括号需要?
  9. [NAACL16]RNN文法
  10. unity 彩带粒子_随机四处散发的粒子光带效果unity3d源码下载!Unity3D Particle Ribbon粒子带源码下载...
  11. JAVA自动装箱和拆箱功能是把双刃剑
  12. 百度云盘在线解析不限速下载网盘网站源码
  13. java io 内存增长_Java IO 总结
  14. 2021上半年,计算机考研大学热搜排名!
  15. 单引号和0的ASCII码
  16. java 比较两个字符串大小
  17. 拍照手机名词术语小常识
  18. Joint Coronary Centerline Extraction and Lumen Segmentation from CCTA CNNTracker and Vascular Grap
  19. matlab中自相关函数
  20. 尚硅谷 Linux系统管理教程 笔记

热门文章

  1. c语言多线程的作用是什么意思,多线程-如何在普通C语言中启动线程?
  2. tf.keras.layers.Dropout 示例
  3. opencv_python使用cv2.imread()读取中文路径,cv2.imwrite()把图片写入中文路径。
  4. LeetCode 136. Single Number--异或--Java,C++,Python解法
  5. Linux 常用小技巧
  6. 宇通客车java_6米采血车
  7. mysql如何防止插入重复数据_防止MySQL重复插入数据的三种方法
  8. C++关键字积累——持续更新
  9. 高中计算机的基本知识教学,高中计算机教案人教版
  10. docker安装Elasticsearch7.6集群并设置密码