关闭

Sequence

题目大意有两个序列a和b。 每次询问将一个区间a值排名在[x,y]的中找一个b值第k小。做法用主席树将排名的x和y变成具体的值。 接下来可以根据b整体二分,其余部分可以拆区间+扫描线+数据结构完成。#pragma GCC optimize(2) #include #include #define fo(i,a,b) for(i=a;i<=b;i++) usi...
阅读(106) 评论(0)

Create

题目大意一个序列,有很多询问,每个询问要问区间>=x的数的个数。 现有若干修改操作,区间赋值,每次修改后请你将所有询问得到的答案和输出。颜色段均摊分析颜色段! 可以用set维护颜色段。 然后只需要考虑一个区间全部由x变成y产生代价。 先把询问按x排序做可持久化线段树,然后就很好做。#pragma GCC optimize(2) #include #include<algori...
阅读(100) 评论(0)

[bzoj4826][HNOI2017]影魔

题目描述影魔,奈文摩尔,据说有着一个诗人的灵魂。事实上,他吞噬的诗人灵魂早已成千上万。千百年来,他收集了各式各样 的灵魂,包括诗人、牧师、帝王、乞丐、奴隶、罪人,当然,还有英雄。每一个灵魂,都有着自己的战斗力,而影魔,靠 这些战斗力提升自己的攻击。奈文摩尔有 n 个灵魂,他们在影魔宽广的体内可以排成一排,从左至右标号 1 到 n。 第 i个灵魂的战斗力为 k[i],灵魂们以点对的形式为影魔提供...
阅读(569) 评论(0)

JZOJ4444

题目大意询问树上两点的路径上小于/等于/大于所给定值k得点的数量(每次询问k不一定相同) 强制在线主席树以计算小于k为例: u到v的路径上小于k的点的数量=>u到根节点小于k的点的数量+v到根节点小于k的点的数量-2*lca(u,v)到根节点小于k的点的数量+lca(u,v)的权值是否小于k 然后裸的主席树#include #include #includ...
阅读(414) 评论(0)

[bzoj3585]mex

题目大意求区间mex主席树我们建立主席树,对于第r棵线段树每一个位置i存储的是数字i出现的最右端。 那么对于区间询问l~r,就是找到第r棵线段树的最大前缀区间,满足区间内每个数的最右出现位置都不小于l。 这个很容易,我们只需要维护区间最小值,询问时如果左区间的区间最小值小于l说明mex在左区间否则mex在右区间。 于是复杂度降为n log n。#include #include...
阅读(561) 评论(0)

[NOIP2015]推销员

题目大意现有长度为N的两个数组a和s 有N个询问,第i个询问你需要找出一个i使得s[i]*2+a[i]+1..i-1中a数组前i-1大的值之和最大。整体二分注意到每个询问找出的那个最优的i是满足单调性的 因此可以对所有询问整体二分 用solve(l1,r1,l2,r2)表示当前处理第l1~r1个询问,他们最优的i范围在l2~r2。 令mid1=(l1+r1)/2,我们在l2~r2则找,看看那...
阅读(1124) 评论(2)
    个人资料
    • 访问:251937次
    • 积分:10104
    • 等级:
    • 排名:第1813名
    • 原创:743篇
    • 转载:4篇
    • 译文:0篇
    • 评论:189条
    最新评论
    文章分类