标签:使用 https class 条件 情况 arch 相同 line 连通
考虑两个节点间路径的奇偶性。把一个点拆成两个点跑bfs,然后一堆if。注意特判起点、终点相同且该点所在连通块大小为1的情况。
先二分 \(k\) ,然后dp, \(dp[u]\) 表示u的所有子树中还需要染色多少个节点,转移: \(dp[u]=\max(\sum dp[v]+son[u]-mid,0)\)
先枚举根节点。
dfs时,把当前节点的(深度/2)级祖先的当前节点所在子树的贡献++,具体实现就和前向星一起存。然后扫到它的祖先的时候统计答案。不要用std::vector。
线段树套线段树,不要用pushdown,使用标记永久化
扫一遍,如果该数第一次出现,加到栈中;否则将该数删除,将该数在栈中所在的位置之上的所有元素的rank全部-1,然后计算贡献,用树状数组维护。
讨厌单调栈。
对于矩阵中的每个元素 \(x\) ,如果 \(x>2k\) ,就是坏点;如果 \(k\le x\le 2k\) ,直接输出;否则是好点。
然后我们求一个好点组成的最大长方形,使得它不覆盖到任何坏点,显然用单调栈维护。
出来之后,我们逐行考虑,设当前行权值和 \(=y\) ,如果 \(y>2k\) ,在该行中从左到右一个一个删元素,直到符合条件;如果 \(k\le y\le 2k\) ,直接输出;否则删掉这一行。
旋转45°,把切比雪夫距离转化为曼哈顿距离,x和y的答案区间可以独立地二分求出,然后要保证输出的答案是整数,检查所有的 \((x±1,y±1)\) 。
标签:使用 https class 条件 情况 arch 相同 line 连通
原文地址:https://www.cnblogs.com/BlogOfchc1234567890/p/11616164.html