CF678F Lena and Queries题解】的更多相关文章

题意: 初始有一个空集合$n$个操作有三种操作,如下:$1\ a\ b$表示向集合中插入二元组$(a,b)$$2\ i$表示删除第$i$次操作时所插入的二元组$3\ q$表示询问当前集合的二元组中,$(a\cdot q+b)$最大是多少 先不要管插入和删除,看一看对于一堆二元组怎么样快速地处理操作3 对题目给的式子做一些微小的贡献变换, $ans=a\cdot q+b\Rightarrow b=-a\cdot q+ans$,这等价于找(经过$(a,b)$的,斜率为$-q$的)直线,使它截距最大…
题目连接:678F - Lena and Queries 题目大意:要求对一个点集实现二维点对的插入,删除,以及询问\(q\):求\(max(x\cdot q+y)\) 题解:对每个点集内的点\(P(x_0,y_0)\),作过点\(P\)且斜率为\(-q\)的直线\(l\),则有\(l:y-y_0=-q(x-x_0)\),可以发现当\(x=0\)时,有\(y=q\cdot x_0+y_0\).因此只要找到一个点,使得过此点作斜率为\(-q\)的直线在\(y\)轴上的截距最大即可.可以发现满足条件…
Time Limit: 2000 ms   Memory Limit: 512 MB Description 初始有一个空集合 n个操作 有三种操作,如下: 1 a b 表示向集合中插入二元组(a,b) 2 i 表示删除第i次操作时所插入的二元组 3 q 表示询问当前集合的二元组中,$(a*q+b)$最大是多少 Input 第一行一个整数$n$,表示操作个数 接下来$n$行,每行表示一个操作,格式见上 Output 对于每个询问输出一行表示最大值 如果询问时集合为空,输出 EMPTY SET S…
前言 DennyQi太巨了! 定义一个点\(a\),\(a_x\)表示\(a\)在第\(x\)维空间上的坐标值 题解 这题的思路珂以说非常巧妙(原谅我又用了这个"珂"), 我们知道曼哈顿距离是\(\sum|a_i-b_i|\),\(|a_i-b_i|\)其实也珂以看作是\((a_i-b_i)\)和\((b_i-a_i)\)中较大的那个. 根据上面的分析曼哈顿距离珂以看作是\(\sum max(a_i-b_i,b_i-a_i)\), 继续分析珂以得出,每个点在每一维度上要应用的无非只有两…
感觉CF的题目名都好朴素的样子 你谷链接 首先这题显然是个dsu on tree 但是我不会. 其次这题显然是个莫队.这我会啊! 然后会发现好像不是很对劲.因为每次询问都有一个k,貌似和传统的莫队数颜色有点不一样. 本蒟蒻看到这里的时候内心是崩溃的.然后就看了一眼题解. 然后我就迷惑了.震惊,前缀和还可以O(1)修改,活到爆! 然后经过郭神的一番论证以后,我惊讶的发现,这个题还真能O(1)修改前缀和. 首先,两个数组.sum[i]表示出现次数大于i的颜色的数量.val[i]表示颜色i的出现次数.…
大致题意: 给出三种操作 1.往平面点集中添加一个点 2.删除第i次添加的点 3.给出一个q,询问平面点集中的q*x+y的最大值 首先对于每个询问,可将z=q*x+y转化为y=z-q*x,即过点(x,y)的斜率为-q的最大截距,很容易发现这些点只会在上凸包上,只要在 凸包上三分即可. 对于插入和删除操作,对于每个点可求得其“生存周期”,即其存在于[L,R]的时间范围内.对每个点的时间区间建线段树,则每次询问的 答案即为询问所在的区间内凸包上点中的最大值. #include<cstdio> #i…
题意: 你有一个点集,有三种操作: 往集合里插入一个点\((x, y)\) 从集合中删除第\(i\)次操作插入的点 对于给出的\(q\),询问点集中\(x \cdot q + y\)的最大值 分析: 先不考虑插入删除操作,对于一个给定的点集,如何寻找\(x \cdot q + y\)最大值 这是一个线性规划的问题,只是可行域变成了离散的点. 设\(x \cdot q + y = z\),其中\(z\)是优化目标. \(y = -q \cdot x + z\),使得经过点\((x, y)\)斜率为…
拖了一周才完成的题解,抛出一个可爱的表情 (っ'-')╮ =͟͟͞͞❤️.对我来说E.F比较难,都是线段树的题,有点久没写了. A - Infinite Sequence CodeForces - 675A 公差为c,首项为a的等差数列是否有一项等于b. 注意c为0的情况. #include<cstdio> long long a,b,c; int main() { scanf("%lld%lld%lld",&a,&b,&c); if(c==0&am…
题目描述 You are given a sequence \(A_1, A_2, ..., A_n(|A_i|≤15007,1≤N≤50000)\). A query is defined as follows: \(Query(x,y) = Max(a_i+a_{i+1}+...+a_j;x≤i≤j≤y)\). Given \(M\) queries, your program must output the results of these queries. 输入输出格式 输入格式 The…
[题解] SPOJ GSS1 - Can you answer these queries I · 题目大意 要求维护一段长度为 \(n\) 的静态序列的区间最大子段和. 有 \(m\) 次询问,每次询问输出区间 \([L,R]\) 的最大子段和. \(|a[i]| \leq 15007\),\(1 \leq m,n\leq5\times10^4\) · 解题思路 首先想到如果用线段树的方法,那么预处理时间复杂度为\(O(n)\),总询问复杂度为\(O(m\cdot logn)\). 当然这么想…