CF5E Bindian Signalizing】的更多相关文章

题目 这题目是真的很水,洛谷给他紫题也差不多算恶意评分了吧233 这种一眼切的题改了很长时间,不是什么n-1搞错,就是什么and打成or,所以写这篇博客给自己长个记性QWQ 题意:n座山组成一个环,相连的圆弧上其他山它们高那么这两座山能互相看到,求能看到的山的组数. 题解:设left[i]表示左边第一个比i高的位置,同理right[i]表示右边第一个比i高的位置.count[i]表示i到right[i]区间(i不在区间内,right[i]在)内高度等于i的山的个数. 注意要用long long…
E. Bindian Signalizing Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/problemset/problem/5/E Description Everyone knows that long ago on the territory of present-day Berland there lived Bindian tribes. Their capital was surrounded…
题意 \(n\)座山组成一个环,相连的圆弧上其他山它们高那么这两座山能互相看到,求能看到的山的组数. 题解 设\(left[i]\)表示左边第一个比\(i\)高的位置,同理\(right[i]\)表示右边第一个比i高的位置.\(count[i]\)表示i到\(right[i]\)区间(\(i\)不在区间内,\(right[i]\)在)内高度等于\(i\)的山的个数. 注意要用long long…
传送门 Description 给你一个环,环上有一些点,点有点权.定义环上两点能相互看见当且仅当两点间存在一个弧使得弧上不存在一个点的点权大于着两个点.求一共有多少个点能互相看到 Input 第一行 一个整数\(n\)代表环上点的个数 第二行\(n\)个数代表环上每个点的点权 Output 一个数代表答案 Hint \(For~All:\) \(3~\leq~n~\leq~10^6\) Solution 考虑到两个点的贡献只会被计算一次,我们不妨令权值较小的点贡献答案. 先考虑在链上怎么做 显…
传送门 Luogu 解题思路 很显然的一点,任何一条可能成为路径的圆弧都不可能经过最高的点,除非这条路径全是最高点. 所以我们先把最大值抠掉,把剩下的按原来的顺序排好. 从前往后.从后往前扫两次,用单调栈维护,记得计算连续的重复数字之后累加. 最后再用最大值随便匹配一下. 细节注意事项 咕咕咕... 参考代码 #include <algorithm> #include <iostream> #include <cstring> #include <cstdlib&…
E. Bindian Signalizing time limit per test 4 seconds memory limit per test 256 megabytes input standard input output standard output Everyone knows that long ago on the territory of present-day Berland there lived Bindian tribes. Their capital was su…
正题 题目链接:https://www.luogu.com.cn/problem/CF5E 题目大意 圆上有\(n\)个山,两个山之间可以看到当且仅当它们之间的两条弧中有一条满足所有山都不高于它们两个. 求可以看到的山的对数. \(3\leq n\leq 10^6,1\leq h_i\leq 10^9\) 解题思路 先找到最高的山,然后先考虑它之外的点对再考虑这座山的贡献,因为这样矮的点之间肯定有一座高山挡着. 然后前后各维护一个单调队列,每个元素被弹出的时候就会统计一个点对. 然后考虑相同的情…
http://codeforces.com/problemset/problem/5/E 众所周知,在很久以前,在今天的 Berland 地区,居住着 Bindian 部落.他们的首都被 n 座山所环绕,形成了一个圆形.在每座山上,有一名看守人,昼夜看守着相邻的山. 万一出现了任何危险,看守人可以在山上点燃烽火.如果连接两座山的圆弧上,没有任何山高于这两座山中的任何一座,那么这两座山的一个看守人可以看见另一个看守人的信号.对于任意两座山,由于存在两条不同的圆弧连接着它们,如果在至少一条圆弧上满足…