摘要:
"传送门" 题意: 给出一个以$1$为根的有根树,起始每个结点都为$0$,现在有三种操作: 1.将$v$及$v$的子树都置为$1$; 2.将$v$及其所有的祖先都置为$0$; 3.询问$v$目前处于何种状态。 对于每次询问给出回答。 思路: 对于$1$操作,子树修改,显然$dfs$序+线段树即可解决 阅读全文
摘要:
"传送门" 题意: 求子树众数。 思路: $dsu\ on\ tree$模板题,用一个桶记录即可。 感觉$dsu\ on\ tree$这个算法的涉及真是巧妙呀,保留重链的信息,不断暴力轻边,并且不断在子树内递归下去。又由于轻边数量不会超过$O(logn)$,所以总的时间复杂度控制在$O(nlogn) 阅读全文
摘要:
"传送门" 题意: 给出一个以$1$为根的有根树。之后有$m$个询问,每个询问为$v_i,h_i$,需要回答以$v_i$为根的子树中,深度为$h_i$的那些结点所代表的字符能否构成回文串。 思路: 静态子树询问,考虑$dsu\ on\ tree$。 深度可以提前处理出来。对一个子树处理时,用一个数组 阅读全文
摘要:
"传送门" 题意: 给出一颗以$1$为根的有根树,每个结点有个颜色$c_i$。 之后要回答$m$组询问,每组询问包含$v_i,k_i$,要回答以$v_i$为根的子树中,颜色出现次数不小于$k_i$的颜色的和。 思路: 这种静态子树上的问题,可以考虑dsu on tree。 由于要回答次数超过$k$的 阅读全文
摘要:
"传送门" A. Two Rival Students 签到。 Code B. Magic Stick 分情况讨论一下即可。 ~~神志不清讨论地很乱~~ Code C. Dominated Subarray 题意: 给出$n$个数,找到长度最短的区间,满足区间长度大于$1$且存在一个数其出现次数严格 阅读全文
摘要:
"传送门" 简单的dfs+dp即可解决。~~根本不用动态开点~~ 阅读全文
摘要:
"传送门" 简单的线段树区间修改区间查询,但是因为数据范围过大,所以采用动态开点的方法(注意一下空间问题)。 也可以直接对询问区间的端点离散化然后建树,这种方法时间复杂度和空间复杂度都比较优秀。 给出动态开点的代码: 阅读全文
摘要:
"传送门" 题意: 坐标轴上有$n$个机器人,每个机器人带有属性$x,r,q$,分别表示位置、可视半径以及智商。 现在定义智商相近为两个机器人的智商差的绝对值不超过$K。 现在问有多少对机器人,他们在互相的可视范围内并且智商相近。 思路: ~~一开始没注意到互相在对面的可视范围内,以为是主席树模板题 阅读全文
摘要:
"洛谷" 题意: 给出一个$n m$的矩阵$A$。现要从中选出$n$个数,任意两个数不能在同一行或者同一列。 现在问选出的$n$个数中第$k$大的数的最小值是多少。 思路: 显然二分一下答案,然后找出所有不超过二分答案的边求最大匹配,判断一下是否小于$n k+1$即可。 阅读全文
摘要:
"传送门" 题意: 现有一个$0$到$n 1$的排列$T$,定义距离$D(x,y)=min\{|x y|,N |x y|\}$。 现在给出$D(i, T_i)$,输出字典序最小的符合条件的排列$T$。 思路: 将问题转化为二分图匹配,左边的点表示位置,右边的点表示值。 那么现在就是要找一个使得最终字 阅读全文