08 2018 档案
摘要:求区间mex。莫队可做。 但如果强制在线,就可以用主席树做。 建立权值线段树,找每个数最后一次出现的位置。查询的时候找第r棵线段树最近出现位置在l之前的最小数即可。update的时候可以update这个数和这个数+1,如果没有这个数+1,那ans就是这个数+1.(好乱啊,看代码吧 cpp // lu
阅读全文
摘要:LCT模板。 Orz了一下大佬的板子 "Orz" UPD(10.19):好像理解LCT了。。。 LCT相当与把一个树剖分,分成实边和虚边,对于每一个实链用一个splay维护一下它的深度,然后当你想进行操作的时候就用splay灵活的变更它的深度与父子关系。 其中实边接的两个点父子相认,就是父节点承认有
阅读全文
摘要:这道题是主席树维护树上K大值。需要可持久化线段树启发式合并。 没有link的话就和count on a tree 一样,有link的话就暴力重构size较小的树,时间复杂度.... 真的是头铁。。。 ~~树剖求lca维护起来好麻烦啊。。。~~可能是我的锅 UPD:就是我的锅....启发式合并一直写的
阅读全文
摘要:某次模拟赛,考到了背包问题,但是因为复杂度分析后发现极限数据用普通背包方法过不去,但是实际上数据水了,这种方法就过了,我又没敢写。。。我也很绝望啊。。。 如果当时会写单调队列优化多重背包就没这么多事了。。。 链接:https://www.cnblogs.com/JoeFan/p/4165956.ht
阅读全文
摘要:线段树合并。 正解好像不是线段树合并,但是出于练手的目的写了线段树合并。 大概就是对于左右子树,如果有一个为空,返回非空的,如果都不为空,就把这两个整合到一起就行了。 cpp include include include include using namespace std; const int
阅读全文
摘要:带修主席树。 脑补一下,每个数对逆序对数的贡献就是前面的比它大的加上后面的比它小的,这样就可以套带修主席树的板子,找一下在它前面删去的比它大的,找一下在它后面比它小的数的个数就行了。 UPD:BZOJ上T了,发现t[]开的太大了,memset的时候直接挂。。。认真算空间Orz cpp include
阅读全文
摘要:动态区间第K大,树状数组套主席树。 树套树和整体二分当然也能做啊。 之前我们写主席树是前缀和,但是可以快速修改和区间求和的就容易想到树状数组,于是就树状数组,每个bit存一个主席树的根就行了。 UPD:人弱常数大,开O2+快读才过了luogu上新加的10个点... cpp include inclu
阅读全文
摘要:给一棵树,每条边有权。求一条简单路径,权值和等于 K ,且边的数量最小。 淀粉质的题,直接套淀粉质的板子,再维护一个桶,表示到达dis的最小需要的路径。 但是有个奇怪的东西,就是如果我最后还原的时候用栈储存所有的dis就会WA4个点,但是如果我把dfs重做一遍就没事了。。。WA了1页。。。 cpp
阅读全文
摘要:题意:求一个数列出现次数 1/2的数。空间:1M。 显然不能存数字,但是因为这个众数的定义和平常的不一样,所以就非常可做了。 用别的数顶掉之前的数,YY一下发现最后留下的就是出现次数 1/2的了。
阅读全文
摘要:数据极水,不加优化的多重背包都能过。。。早知道考试的时候不加奇奇怪怪的卡常优化,卡了45分。。。 就是从前往后做一个多重背包,从后往前再做一个,问的时候就暴力求一下跳过这个的最佳方案。。。 cpp include include include using namespace std; int f[
阅读全文
摘要:可持久化线段树优化连边。。。 发现连线段树优化连边都没有在正式比赛考过。。。 网络流建模 问题转化成∑(Bi+Wi)∑黑点Wi∑白点Bi∑奇怪的点Pi S i连一条容量为Bi的边,表示选白色,i T连条容量为Wi的边,i i'连容量Pi的边,i'
阅读全文
摘要:BZOJ上的权限题,流下了贫穷的泪水。。。 可持久化trie的题。 一开始zz了,看错了题,以为是要把所有的宝石缩起来,后来仔细一看好像只缩一次。。。昨天刷了一晚上的语文病句题白做了。。。 这样的话就可以枚举以每个点为次大值,求出可以异或的区间,用可持久化trie做。维护可以异或的区间可以用set求
阅读全文
摘要:hash+主席树,把hash值挂到主席树上,查询区间是否存在即可。 (我才不会告诉你我的模数被卡了5发) include include include typedef unsigned long long ll; using namespace std; int n,m,k,rt[200005],
阅读全文
摘要:其实和luogu上主席树的板子差不多,就是把它放到了树上,把板子改成求sum[u]+sum[v] sum[lca] sum[lcafa]的就行了。 cpp include include include include using namespace std; const int N=100005;
阅读全文
摘要:写完忘了账号,试了N久。记搜的时候mod了N次,还是不对。发现自己SB的把solve里面传的值写成int了。。。
阅读全文
摘要:大意:求树上路径和mod 3 =0 的点对数。 一开始写的容斥无限智障,后来参考了一下题解,发现根本不用我那种垃圾写法。。。 cpp include include include using namespace std; const int N=100005; int n,rt,head[N],e
阅读全文
摘要:算法流程:找到树的重心,删去这个点,递归子树。 题号luogu3806 cpp include include include include include include using namespace std; const int N=10005; inline int read(){ int
阅读全文
摘要:T1 打表出奇迹,发现结论为E(an)=n+1即可。 T2 正解应该是kmp,求出来nxt数组为偶数的就行了。但是蒟蒻了一下,并且受到200000的数据范围引导,写了个nlogn的做法,对于每个位置能延伸出去的长度,二分一下,check一下hash即可,荣幸成为全场除了写SA的老哥以外跑的最慢
阅读全文
摘要:性质:每个位置的前缀和必须大于0,总和=0.以此dp即可。 cpp include include include using namespace std; const int mod=1e9+7; int n,m,f[2005][2005],ans,sum,mn=0x3f3f3f3f; char
阅读全文
摘要:T1 叕出锅了。。。 大意:求一个最小的数的阶乘是给定的n个数的乘积的倍数。 二分边界定小,WA了两个点。二分边界不要省啊。。。多不了多少时间。。。 cpp include include include using namespace std; const int N=100005; int n,
阅读全文
摘要:T1 博弈+dp,设f[i][j]表示第f个人报j是否有必胜策略。 分i+1是不是同类讨论即可。 cpp include include include include using namespace std; const int N=5005; int n,m,k; bool f[N=0;j )
阅读全文
摘要:后两道题没交上去。。。md T1 dijkstra+求哈密顿路径的水题,没开long long挂了两个点。 cpp include include include include define int long long using namespace std; const int N=50005,
阅读全文
摘要:~~21 世纪是生物学的世纪~~,以遗传与进化为代表的现代生物理论越来越多的 进入了我们的视野。 如同大家所熟知的,基因是遗传因子,它记录了生命的基本构造和性能。 因此生物进化与基因的变异息息相关,考察基因变异的途径对研究生物学有着 至关重要的作用。现在,让我们来看这样一个模型: 1、所有的基因都可
阅读全文
摘要:Star 计划订购一本将要发行的周刊杂志,但他可不是为了读书,而是—— 集卡。 已知杂志将要发行 N 周(也就是 N 期),每期都会附赠一张卡片。Star 通 过种种途径,了解到 N 期杂志附赠的卡片种类。Star 只想订购连续的若干期, 并在这些期内收集所有可能出现的种类的卡片。现在他想知道,他最
阅读全文
摘要:一开始理解错题意,以为他俩速度一样,同时出发,结果发现样例也过不了。手玩一下样例,发现好像只要路径相交就行了如果路径有相交,说明有个LCA在另一条路径上,否则就有环了。然后树剖求个LCA。 cpp include include include using namespace std; const
阅读全文
摘要:~~莫比乌斯反演???~~ 好像不用也行。 因为gcd(i,N)一定是N的因数,枚举N的每个因数,找一下有几个数和N的gcd是这个数就行了。那么这样的话(i/gcd,N/gcd)=1。求的东西就转化成: ∑d|Nϕ(d)⋅d 因为N太大了,所以枚举因子,边算$\p
阅读全文
摘要:和SCOI2010的连续攻击游戏基本一样。 cpp include include include using namespace std; int g[1005][1005],n,m,tim; int vis[1005],match[1005],anss[1005],ans; int dfs(in
阅读全文