离线处理
alan_cty
蒟蒻一只
别打脸(⊙o⊙)哦
展开
-
【SDOI2014】旅行
Description给出一个n个点的数,和m次操作。每个点有颜色和权值。 每次操作分4种 1:修改一个点的颜色 2:修改一个点的权值 3:询问从x到y的路径上,和x相同颜色的点的权值和(保证x,y同颜色) 4:询问从x到y的路径上,和x相同颜色的点的权值最大值(保证x,y同颜色) n,m<=10^5,颜色<=10^5,权值<=10^4Solution首先,很容易想到链剖(蒟蒻表示并不会原创 2016-03-31 19:11:35 · 1402 阅读 · 0 评论 -
【GDOI2103模拟3.17】数树数
Description给出一个n个节点的树,每个点有权值。给出m次操作,每次操作修改一个点的权值或者询问从x到y的路径上有多少个权值为z的点。 nSolution话说2103年的题真的很鬼畜。 链剖like[SDOI2012旅行],还更简单。好像有把权值重复赋值的操作。原创 2016-03-31 19:19:39 · 705 阅读 · 0 评论 -
[bzoj1015][JSOI2008]星球大战starwar
Description给出n个点和m条无向边,再给出q次操作,每次操作把一个点和与他相连的边全部删除,求每次操作之后的联通块个数。 n,q<=4 * 10^5, m<=2 * 10^5Solution正着做似乎很麻烦?我们可以考虑正难则反(又来)。 为什么?因为并查集不兹瓷删边,但兹瓷加边。2333 似乎我已经直接把做法说出来了。然后就是细节了。 判断联通块个数不能用O(N),开个ans判一原创 2016-06-03 20:58:44 · 893 阅读 · 0 评论 -
【清华集训2014】mex
Description有一个长度为n的数组{a1,a2,…,an}。m次询问,每次询问一个区间内最小没有出现过的自然数。n,m<=200000,ai<=10^9Solution首先,看到这种东西,一般都是数据结构的啦。可是仔细一看,发现不知道如何维护,维护什么! 发现他没有卡离线,也没有修改,就想想离线。 把所有询问按r排序,顺序枚举所有以i为右节点的询问,用一个函数式线段树(权值线段树,主席树原创 2016-03-09 20:19:07 · 924 阅读 · 0 评论 -
[bzoj3626][LNOI2014]LCA
Description给出一棵树,q次询问,每次询问∑i=lrdeep(lca(i,z))\sum_{i=l}^{r}deep(lca(i,z)) n,q<=5*10^4Solution这道题在线明显不可做。(在线A了的大犇请收下我的膝盖) 首先,我们来思考一下,一组询问怎么做? 暴力的想法,我们把每要询问的点往上都打上标记,然后把z点往上找到每个标记第一次出现的位置。 其实我们可以发现,每原创 2016-06-12 21:08:12 · 1666 阅读 · 4 评论 -
[51nod1203]JZPLCM
Description给出n个数ai,m次询问,每次询问区间[l,r]的LCM。 答案对10^9+7取模。 n,m,ai<=50000Solution再次被推毒。 这道题做法挺多的说~ 似乎许多dalao都是直接上莫队踩过去的~ 栋爷的平衡规划 听说这道题是集训队原题,然后原题ai<=10^9?首先我们考虑LCM是什么?就是所有质数在这个区间中出现的次数最大值的乘积。 发现找最大值很不原创 2017-01-06 20:24:51 · 602 阅读 · 0 评论 -
【NOI2017模拟3.25】历史行程
Description给出一个长度为n的字符串,m次询问前缀l~r中两两的最长后缀最长是多少。 n,m<=1e5Solution显然先倒过来,询问变成求后缀的lcp SA处理一下就好了。 但是rank不是有序的,无法处理,怎么办呢? 可以离线莫队,维护一个set,每次插入或删除都可以log n解决。 但是复杂度过高会T怎么办呢? 我们每次插入就是要求某个点的前继和后继。 这个东西可以用原创 2017-03-29 20:55:32 · 528 阅读 · 0 评论 -
【GDOI2018模拟7.12】A
Description n,m<=1e5,注意题目中的低于是指小于等于Solution把逆序对拆成每个点后面小于它的点的个数和 考虑一次操作,影响的点之后这个位置后面权值<=当前权值的点的贡献 这些点的权值会变成0,其他点的权值不会变 那么我们可以离线处理出每个点最早一次被修改的时间,然后对把它对于某一段答案的贡献减掉 这个东西听说可以用树状数组做,然而由于我太菜用了线段树_ (:з」∠)原创 2017-07-14 22:14:25 · 359 阅读 · 0 评论 -
[校内模拟]字符串
Description定义一个字符串S的权值f(S)为,其所有不同后缀两两的LCP的最大值给出一个字符串S,每个位置有权值aim次询问,每次询问给出[l,r,x],求一个[l,r]的子区间[a,b],满足f(S[a,b])>=x,且max(ai)最小n,m<=5e4Solution这题分成两部分1:给出[L,R],求f(S[L,R])考虑SAM,枚举parent树上的一...原创 2019-06-29 22:13:17 · 264 阅读 · 0 评论