CF765F Souvenirs 题解】的更多相关文章

CF765F Souvenirs [CF765F]Souvenirs 主席树 - CQzhangyu - 博客园 其实不用主席树 感觉像是离线问题 但是不能支持差分.分治又处理不了 考虑按照右端点排序,线段树维护左端点为i的时候的答案 然后trick一下,把求ansl,变成求min(ansl....ansr),这样可以少更新很多 先把|ai-aj|变成j<i,aj>=ai这样找,然后再反过来做一次. 新加入的a[i],找之前第一个大于a[i]的a[pos],(pos是所在位置) 在pos位置更…
CF765F Souvenirs 题意翻译 给出\(n(2 \le n \le 10^5 )\) ,一个长为\(n\)的序列\(a(0 \le a_i \le 10^9 )\). 给出\(m(1\le m \le 2*10^5 )\),接下来\(m\)组询问. 每组询问给出一个\(l,r(1\le l < r\le n )\),代表询问最小的\(|a_i-a_j|\) 的值(\(l\le i <j\le r\) ,\(a_i\) 可以等于\(a_j\) ) 蒟蒻\(\tt{Dew}\)又双叒叕…
$ \color{#0066ff}{ 题目描述 }$ A县旁,连绵着一条长度为 n 的山脉,这条山脉由 n 座山峰组成,第 i 座山 峰的高度为 ai.作为著名的旅游县城,每天来到山脉游玩的旅客络绎不绝.但当 游客们去过了第一座山之后,就必须要先下山,再上第二座山.这实在是件很麻 烦的事,于是人们计划在山峰之间修建一些桥梁. 修建桥梁是件很麻烦的事.因为如果两座山峰的高度差太大的话,再在这两 座之间修建桥梁就显得有些不合适了.设计者们给出了 m 个计划,每个计划会 从区间\([l,r]\) 中选…
CF1039D You Are Given a Tree 容易发现,当 \(k\) 不断增大时,答案不断减小,且 \(k\) 的答案不超过 \(\lfloor\frac {n}{k}\rfloor\) ,因此不同的答案个数是 \(\sqrt n\) 级别的,可以用一种类似整体二分的方式求解. 对于一个 \(k\) ,从叶子节点贪心向上匹配即可得到答案. 点击查看代码 #include<bits/stdc++.h> using namespace std; int n; int ver[2000…
[CF765F]Souvenirs 题意:给你一个长度为n的序列{ai},有m个询问,每次询问给出l,r,问在所有$l\le x < y\le r$中,$|a_x-a_y|$的最小值是多少. $n\le 10^5,m\le 3\times 10^5,a_i\le 10^9$ 题解:网上的标程都是在线段树上搞一搞就完事了,但是我怎么看都觉得是$O(n\log^3n)$的.看官方题解,里面也没写具体做法.于是我一脸懵逼的情况下用了主席树来维护,起码保证了$O(n\log^2n)$的复杂度.(应该是做…
[CF765F]Souvenirs 题面 洛谷 题解 我们可以发现,对于某个右端点\(i\),左端点\(j\)在由\(i\rightarrow 1\)的过程中,每一段的答案是单调不增的,由这个性质,我们想办法维护出加入右端点\(i\)后的答案. 我们只考虑形如\(j<i,a_i<a_j\)的答案,因为其他的情况我们只需要将值域翻转即可得到答案. 根据我们上面的说法,你首先需要找到一个\(j\),使得\(a_j>a_i\)且\(j\)最大,这个可以用值域线段树维护.然后我们又要找到一个一个…
Souvenirs 我们将询问离线, 我们从左往右加元素, 如果当前的位置为 i ,用一棵线段树保存区间[x, i]的答案, 每次更新完, 遍历R位于 i 的询问更新答案. 我们先考虑最暴力的做法, 我们先找到位于 i 前面第一个 j, a[ j ] > a[ i ], 那么x 属于 [ 1, j ]的答案 就会被a[ j ] - [ i ] 更新一下. 然后下一个找在 j 前面第一个 k, a[ k ] >= a[ i ] && a[ k ] < a[ j ], 这个过…
F. Souvenirs 题目连接: http://codeforces.com/contest/765/problem/F Description Artsem is on vacation and wants to buy souvenirs for his two teammates. There are n souvenir shops along the street. In i-th shop Artsem can buy one souvenir for ai dollars, a…
Problem A. Neverending competitions 题目大意 一个团队有多个比赛,每次去比赛都会先订机票去比赛地点,然后再订机票返回.给出\(n\)个含有起止地点的购票记录(不按时间顺序),判断这个团队是否返回. 题解 竞速题 因为每次比赛都必定是一去一返 所以当订票记录个数为偶数的时候一定在家中,否则一定在比赛. Code a = input() if a % 2 == 0: print 'home' else: print 'contest' Problem B. Cod…
When the winter holiday comes, a lot of people will have a trip. Generally, there are a lot of souvenirs to sell, and sometimes the travelers will buy some ones with pleasure. Not only can they give the souvenirs to their friends and families as gift…