树状数组
alan_cty
蒟蒻一只
别打脸(⊙o⊙)哦
展开
-
GDOI 2016 Day2 T3 机密网络
Description给出一个n个点n条边的无向连通图,每个点有点权Ai,每条边的边权都为1,求所有距离<=k的点对个数以及它们的权值乘积和。 n<=10^5,Solution很明显,原图是一个环套外向树。(就是一个环,外面长了一堆树) 如果没有多的那一条边,那么原题就很明显是经典点分治的题目了。 那我们可以先把环上的那一条边删掉,做点分治,然后再计算它对答案的影响。 这条边的影响就是删边前原创 2016-05-20 18:29:40 · 1231 阅读 · 0 评论 -
【NOI2018模拟3.28】Subset
Description给出三个排列a,b,c,求对于所有的下标集合S,求 (max(ai),max(bi),max(ci)),i⊆S(max(ai),max(bi),max(ci)),i\subseteq S的所有可能情况。 n<=1e5Solution考虑最大值所属的位置,显然|S|<=3 |S|=1的话就是n |S|=2就是一个三维偏序 |S|=3比较麻烦,考虑容斥。 合法方案就是三原创 2018-03-28 17:02:39 · 434 阅读 · 0 评论 -
[codeforces 547 E][51nod1440]迈克打电话
Description给出n个字符串,这n个字符串的总长为L,定义函数call(i,j)表示第j个字符串在第i个字符串中出现的次数。 给出q次询问,每次询问给出l,r,k,求∑ri=lcall(i,k)\sum_{i=l}^{r}call(i,k) n,l<=2*1e5,q<=5*1e5Solution蒟蒻不会fail树做法QwQ 只会最朴素的SA啊_ (:з」∠) _ 首先把所有串接在一起原创 2017-10-14 10:11:23 · 467 阅读 · 0 评论 -
[bzoj4548]【GDOI2018模拟7.14】小奇的糖果
Description给出平面上n个点,每个点有颜色,求一条水平线段最多能包含多少个不包含所有颜色的点 n<=1e5Solution之所以写bzoj前缀是因为我是在bzoj上先过了这道题然后在OJ上卡常卡了一个下午 做法还是太naive 枚举一个不出现的颜色,就变成了许多限制 把这些限制按y坐标排序,在每个限制之前处理一下答案 那么我们就要处理出某个点下面和它在x坐标上相邻的两个点 这个原创 2017-07-14 22:20:06 · 569 阅读 · 2 评论 -
【GDOI2018模拟7.12】A
Description n,m<=1e5,注意题目中的低于是指小于等于Solution把逆序对拆成每个点后面小于它的点的个数和 考虑一次操作,影响的点之后这个位置后面权值<=当前权值的点的贡献 这些点的权值会变成0,其他点的权值不会变 那么我们可以离线处理出每个点最早一次被修改的时间,然后对把它对于某一段答案的贡献减掉 这个东西听说可以用树状数组做,然而由于我太菜用了线段树_ (:з」∠)原创 2017-07-14 22:14:25 · 359 阅读 · 0 评论 -
【GDOI2017模拟9.10】子串
Description给出n个字符串Si,m次询问,第i次询问Sli~Sri这些字符串中有多少个是字符串pi的母串。 ∑|Si|,∑|pi|<=5∗105\sum{|Si|},\sum{|pi|}<=5*10^5Solution看到多串匹配就想到了AC自动机。 然而辛辛苦苦打完之后发现只有自己傻傻地写的那么辣鸡。 在线OrzSAM和SA分块做法。显然我们需要离线回答。 把所有的pi建一棵AC原创 2016-09-10 16:51:25 · 673 阅读 · 0 评论 -
【GDOI2013模拟1】屏保
Description平面直角坐标系内有n个点,第i个点的坐标为(i,Hi),顺次连接这n个点。 现在给出一条直线y=h,求这条直线以下的由这条直线和其他线段围成的图形的面积。 兹瓷单点修改。 n<=10^5,hi<=1000语文不好,放图来讲讲道理。 左边这张图的答案是3.75,右图为6. Solution考虑hi和hi+1所连的线段。 若hi<h<hi+1h_i<h<h_{i+1},原创 2016-07-05 21:41:09 · 547 阅读 · 0 评论 -
[51nod1711]平均数
Description给出一个长度为n的序列,求所有n*(n+1)/2个区间中平均数第k大的平均数。 n<=10^5Solution考虑二分答案。 那么判定就是要求有多少个区间的平均数>=mid. 考虑前缀和,区间[i+1,j]的平均数就是sumj−sumij−isumj-sumi\over j-i 满足条件的话,那么sumj−sumij−i≥mid{sumj-sumi\over j-i}\原创 2016-07-03 21:47:25 · 872 阅读 · 0 评论 -
[bzoj2819]Nim
Description给出一棵树,每次修改一个点的值或询问x,y之间的路径上的数组成的石子游戏先手有没有必胜方案。(普通版SG) n,m<=5*10^5Solution哎呀,dfs带一个参过~(≧▽≦)/~啦啦啦 虽然很对不起vfleaking爷,但是我也懒得改人工栈了。(受我深情一拜) 先来科(kou)普(hu)一下,先手必胜就是这条路径上的数的异或和不为0. 似乎刚开始想到了链剖,但是两原创 2016-06-15 21:02:57 · 674 阅读 · 0 评论 -
[bzoj3211]花神游历各国
Description写一个数据结构兹瓷区间求和和区间开方。 n<=10^5,m<=2*10^5,ai<=10^9Solution区间开平方?暴力开呗。 反正10^9也不需要开多少次,只不过常数大了点罢了。 用线段树维护区间和,还有区间标记,表示这个区间是不是还有可以开方的数(1&0)。 不过,有一个迷之问题,为什么一定要把0给标记,不然会惨绝人寰地超时? 表示奥妙重重。Code#incl原创 2016-06-11 18:45:17 · 841 阅读 · 0 评论 -
[bzoj2743][HEOI2012]采花
Description给出一个长度为n的序列,序列中的数再[1~c]的范围内,和m次询问,每次询问[l,r]这个区间中有多少个出现大于等于两次的数。 n,m,c<=10^6Solution看到这种题,有没有强制在线,自然很容易想到莫队~(≧▽≦)/~啦啦啦 可是n<=10^6,根号n的莫队表示很方。( ⊙ o ⊙ )啊! 于是,我们可以想到一个优美的替代品。 预处理出next[i]表示i后面原创 2016-06-02 19:26:31 · 862 阅读 · 0 评论 -
【GDOI2019模拟2019.3.25】芬威克树
Description给出一段伪代码,其中lowbit(x)表示x在k进制下最低非零位的值,你需要维护这样一个东西,支持这两种操作。x<=10^9 q,k<=200000Solution首先每个点x+lowbit(x)唯一,所以所有的点形成了一棵树问题变成了链修改单点求考虑当k为奇数时,所有的操作不会改变x的最低非0位即所有的点形成了以(2x+1)kd,(2x+1&...原创 2019-03-25 22:35:44 · 580 阅读 · 0 评论