[洛谷P4889]kls与flag
题目大意:有$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相关推荐
- 洛谷 - 试炼场(全部题目备份)
整理的算法模板合集: ACM模板 目录 1.新手村 1 - 1 洛谷的第一个任务 1 - 2 顺序与分支 1 - 3 循环!循环!循环! 1 - 4 数组 1 - 5 简单字符串 1 - 6 过程函数 ...
- 洛谷P4609 [FJOI2016]建筑师 【第一类斯特林数】
题目链接 洛谷P4609 题解 感性理解一下: 一神带\(n\)坑 所以我们只需将除了\(n\)外的\(n - 1\)个元素分成\(A + B - 2\)个集合,每个集合选出最大的在一端,剩余进行排列 ...
- Bzoj4016/洛谷P2993 [FJOI2014] 最短路径树问题(最短路径问题+长链剖分/点分治)
题面 Bzoj 洛谷 题解 首先把最短路径树建出来(用\(Dijkstra\),没试过\(SPFA\)\(\leftarrow\)它死了),然后问题就变成了一个关于深度的问题,可以用长链剖分做,所以我 ...
- 洛谷P3391文艺平衡树(Splay)
题目传送门 转载自https://www.cnblogs.com/yousiki/p/6147455.html,转载请注明出处 经典引文 空间效率:O(n) 时间效率:O(log n)插入.查找.删除 ...
- 洛谷P2522 [HAOI2011]Problem b(莫比乌斯反演)
传送门 我们考虑容斥,设$ans(a,b)=\sum_{i=1}^a\sum_{j=1}^b[gcd(a,b)==k]$,这个东西可以和这一题一样去算洛谷P3455 [POI2007]ZAP-Quer ...
- Java 洛谷 P1089 津津的储蓄计划讲解
题目描述 津津的零花钱一直都是自己管理.每个月的月初妈妈给津津300300元钱,津津会预算这个月的花销,并且总能做到实际花销和预算的相同. 为了让津津学习如何储蓄,妈妈提出,津津可以随时把整百的钱存在 ...
- 洛谷 【P1252】马拉松接力赛
洛谷 [P1252]马拉松接力赛 题目描述 某城市冬季举办环城25km马拉松接力赛,每个代表队有5人参加比赛,比赛要求每个的每名参赛选手只能跑一次,一次至少跑1km.最多只能跑10km,而且每个选手所 ...
- 洛谷P3763 [Tjoi2017]DNA 【后缀数组】
题目链接 洛谷P3763 题解 后缀数组裸题 在BZOJ被卡常到哭QAQ #include<algorithm> #include<iostream> #include< ...
- 洛谷P4630 [APIO2018] Duathlon 铁人两项 【圆方树】
题目链接 洛谷P4630 题解 看了一下部分分,觉得树的部分很可做,就相当于求一个点对路径长之和的东西,考虑一下能不能转化到一般图来? 一般图要转为树,就使用圆方树呗 思考一下发现,两点之间经过的点双 ...
最新文章
- 169v 条目不存在_存在麒麟?牛顿烈焰激光剑理论!生活中的科学思维
- mac下dashboard小控件开发实例(附源码)
- CTF入门--二进制
- 一键分享手机代码_通过广告路由器指定手机浏览器自动认证WIFI上网 附代码
- 11个Javascript树形菜单
- mysql数据表最高速迁移,mysql的存储引擎为:myisam
- word文档解密_加密的pdf如何打印?一键解密,我有好方法!
- php条件语句中大括号必须,PHP条件,括号需要?
- [NAACL16]RNN文法
- unity 彩带粒子_随机四处散发的粒子光带效果unity3d源码下载!Unity3D Particle Ribbon粒子带源码下载...
- JAVA自动装箱和拆箱功能是把双刃剑
- 百度云盘在线解析不限速下载网盘网站源码
- java io 内存增长_Java IO 总结
- 2021上半年,计算机考研大学热搜排名!
- 单引号和0的ASCII码
- java 比较两个字符串大小
- 拍照手机名词术语小常识
- Joint Coronary Centerline Extraction and Lumen Segmentation from CCTA CNNTracker and Vascular Grap
- matlab中自相关函数
- 尚硅谷 Linux系统管理教程 笔记
热门文章
- c语言多线程的作用是什么意思,多线程-如何在普通C语言中启动线程?
- tf.keras.layers.Dropout 示例
- opencv_python使用cv2.imread()读取中文路径,cv2.imwrite()把图片写入中文路径。
- LeetCode 136. Single Number--异或--Java,C++,Python解法
- Linux 常用小技巧
- 宇通客车java_6米采血车
- mysql如何防止插入重复数据_防止MySQL重复插入数据的三种方法
- C++关键字积累——持续更新
- 高中计算机的基本知识教学,高中计算机教案人教版
- docker安装Elasticsearch7.6集群并设置密码