----离散化
文章平均质量分 52
扩展的灰
扩展的灰(Extended Ash)
展开
-
Jzoj4737 金色丝线将瞬间一分为二(GOSICK系列)
继续上一篇那套题 可以将x,y宙分开讨论,对于每一维维护一个数据结构求出所有比之小的部分的和和比之大的部分的和 所以我们先将这些点分别按x,y轴排序,得到rankx和ranky之后用树状数组即可 #pragma GCC optimize("O3") #pragma G++ optimize("O3") #include #include #include #define LL l原创 2017-10-22 22:45:56 · 758 阅读 · 0 评论 -
Jzoj4845 寻找
“我有个愿望,我希望穿越一切找到你。” 这是个二维平面世界,平面上有n个特殊的果实,我从(0,0)点出发,希望得到尽量多的果实,但是出于某种特殊的原因,我的运动方式只有三种(假设当前我在(x,y)): 1、我可以走到(x+1,y) 2、我可以走到(x,y+1) 3、我可以走到(x+1,y+1) 现在我需要你的帮助,帮我找出我最多能够得到多少个果实。 经典的二维dp,我们设f原创 2017-10-30 22:00:23 · 296 阅读 · 0 评论 -
Jzoj5428 查询
给出一个长度为n的序列a[] 给出q组询问,每组询问形如,求a序列的所有区间中,数字x的出现次数与数字y的出现次数相同的区间有多少个 对于100%的数据,1 这题十分的鬼畜 我们考虑预先处理处答案,将序列离散化 让后对于每个值开一个链表记录其在数组中出现的位置 每次考虑询问i,j,我们将一个位置p的‘差分值‘定义为p前i的个数-p前j的个数 显然,任意两个‘差分值’相同的位置原创 2017-11-08 20:09:04 · 284 阅读 · 0 评论 -
Jzoj1951 布娃娃
一开始看错题目了,很容易看成i喜欢的中,让后写主席树区间第k大 反过来其实也很好做,我们考虑将所有的L,R,P丢到一起考虑,分两种操作,询问和修改(是不是很像cdq分治) 排个序再加上个平衡树离散化+ZKW线段树求第k大就好了 (注意题目坑点:是第k大不是第k小) #pragma GCC optimize("O3") #pragma G++ optimize("O3") #includ原创 2018-01-20 17:07:25 · 356 阅读 · 0 评论 -
51Nod1349 最大值
题目看这里 各种离线套路题。。。 我们考虑对每个元素都先预处理答案让后就可以O(lg n)回答了 将元素排序后,对于两个询问i,j∈(s[k],s[k+1]]的答案是一样的,我们考虑计算当i=s[k]时的答案 显然,当i=s[1]的时候,答案就是总区间数 这时考虑当i->s[2]的时候有哪些区间被从答案中去掉了 对于一个点i,令l[i]表示当前询问q下,满足区间[l[i],i]最大值原创 2018-02-15 09:41:21 · 292 阅读 · 0 评论 -
CDQ分治&整体二分九连测
整体二分好难a CDQ分治&整体二分九连: A[适者] 先来一个不是cdq分治的题(虽然也可以用分治做) 首先先来考虑按照什么顺序来搞掉这些机甲 对于两个相邻的机甲i,j,先i后j的代价是Ai∗Di+(Di+Dj)∗AjAi∗Di+(Di+Dj)∗AjA_i*D_i+(D_i+D_j)*A_j 那么如果i应该比j先消灭就有 Ai∗Di+(Di+Dj)∗Aj<A...原创 2018-08-19 21:32:06 · 571 阅读 · 0 评论