传送门 Luogu 解题思路 考虑把22个字符状压下来,易知合法情况就是状态中之多有一个1,这个可以暴力一点判断23次. 然后后就是 dsu on the tree 了. 细节注意事项 咕咕咕 参考代码 #include <algorithm> #include <iostream> #include <cstring> #include <cstdlib> #include <cstdio> #include <cctype> #i…
传送门 Luogu 解题思路 整体二分. 的确是很难看出来,但是你可以发现输出的答案都是一些可以被看作是关键字处于 \([1, n]\) 的询问,而答案的范围又很显然是 \([0, n]\),这不就刚好满足了整体二分的几个组成部分了吗. 那么我们要如何求出 \(mid\) 位置的解呢? 考虑 \(\text{DP}\) 我们很显然可以将子树中的点尽可能合并后再向父亲传递,所以我们对每一次DP的根节点分别记一个子树中的最大值,和一个非严格次大值,然后我们尝试合并这两个值,要是合并不了,就给答案加一…
CF741D Arpa’s letter-marked tree and Mehrdad’s Dokhtar-kosh paths 好像这个题只能Dsu On Tree? 有根树点分治 统计子树过x的路径 奇偶可以xor,深度可以减,所以,w[x]x到根的链上二进制数S保留字符出现奇偶性 mx[S]表示w[x]=S的x的最大深度 类比点分治去做 更新答案时候处理一个轻儿子回来更新mx[] 重儿子贡献的答案额外处理. #include<bits/stdc++.h> #define reg reg…
2042. 「CQOI2016」不同的最小割 内存限制:256 MiB时间限制:1000 ms标准输入输出 题目类型:传统评测方式:文本比较 上传者: 匿名 提交提交记录统计讨论测试数据   题目描述 学过图论的同学都知道最小割的概念:对于一个图,某个对图中结点的划分将图中所有结点分成两个部分,如果结点 s,ts, ts,t 不在同一个部分中,则称这个划分是关于 s,ts, ts,t 的割.对于带权图来说,将所有顶点处在不同部分的边的权值相加所得到的值定义为这个割的容量,而 s,ts, ts,t…
「BZOJ2654」tree 最小生成树+二分答案. 最开始并没有觉得可以二分答案,因为答案并不单调啊. 其实根据题意,白边的数目肯定大于need条,而最小生成树的白边数并不等于need(废话),可以二分将每条白边的权值+mid,这样就可以控制最小生成树中白边的条数, 对于一个mid,将所有的白边权值加mid,然后跑kruskal,求出最小生成树中白边的个数num以及此时的权值和ans(要减去mid*need),如果num=need直接输出ans,如果num<need 则让r=mid继续二分,如…
[题解]#6622. 「THUPC 2019」找树 / findtree(Matrix Tree+FWT) 之前做这道题不理解,有一点走火入魔了,甚至想要一本近世代数来看,然后通过人类智慧思考后发现,这道理可以用打马后炮别的方式来理解. 先放松一点条件,假如位运算只有一种,定位某一颗生成树,那么可以知道 \[ w(T)=\oplus_{w\in W} w \] 写成生成函数的形式,对于每条边就是 \[ h((i,j))=[\exist e=(i,j,w)]x^w \] 现在重边可以看做一条边了…
「SPOJ10707」Count on a tree II 传送门 树上莫队板子题. 锻炼基础,没什么好说的. 参考代码: #include <algorithm> #include <cstdio> #include <cmath> #define rg register #define file(x) freopen(x".in", "r", stdin), freopen(x".out", "w…
「SPOJ1487」Query on a tree III 传送门 把树的 \(\text{dfs}\) 序抠出来,子树的节点的编号位于一段连续区间,然后直接上建主席树区间第 \(k\) 大即可. 参考代码: #include <algorithm> #include <cstdio> #define rg register #define file(x) freopen(x".in", "r", stdin), freopen(x"…
「luogu2633」Count on a tree 传送门 树上主席树板子. 每个节点的根从其父节点更新得到,查询的时候差分一下就好了. 参考代码: #include <algorithm> #include <cstdio> #define rg register #define file(x) freopen(x".in", "r", stdin), freopen(x".out", "w", s…
「AGC035C」 Skolem XOR Tree 感觉有那么一点点上道了? 首先对于一个 \(n\),若 \(n\equiv 3 \pmod 4\),我们很快能够构造出一个合法解如 \(n,n-1,n-2,..,1,n+n,n+n-1,n+n-2,...,n+1\). 若 \(n\equiv 1 \pmod 4\),我们将 \(n,n-1\) 拆分出来单独成一条链. 然后如果 \(n\) 是偶数,可以想到对于这个 \(n\) 单独处理,则剩下的问题转化为我们上面的问题. 考虑对于这个偶数特殊判…