【Typical】几道题的极简主义题解

JZOJ 5391

ρ有一个二分连通无向图,X 方点、Y 方点均为n个(编号为1 ~ n)。
这个二分图比较特殊,一个Y 方点的度为2,一条黑色边,一条白色边。
所有黑色边权值均为a ,所有白色边权值均为b 。
选择一个X 方点,代价为连接的所有边的权值之和。
激活一个Y 方点,需要选择至少一个与之相邻的X 方点。
现在,ρ想激活每个Y 方点,他想知道最小总代价

Key:将Y方点所连接的两个X方点连边

JZOJ 5390

这里写图片描述
要求做到NlogN

Key:那个绝对值显然要拆,用线段树维护直线(将决策看成直线)/化出斜率式用队列维护凸壳(将决策看成点)

JZOJ 5363

这里写图片描述

Key:异或拆位,LCP用trie维护,子树问题的话可以用trie合并/启发式合并/轻重链剖分的奇技 来做,应该是两个Log

JZOJ 5360

给定一棵有n 个点的树,现要求不断删点直到树的直径<=K,求最少需要删除的点数。
一个点可以被删掉当且仅当该点的度数为1
对于100% 的数据,K <= n <= 2000。

Key:枚举直径中间点/边,再O(n)找出距离不超过K的点

JZOJ 5358

这里写图片描述
这里写图片描述

Key:将组合数想成现实意义:(0,0)点到(n,m)点曼哈顿路径条数。题意化为:多个起始点多个终点两两配对的答案总和,解决方案:dp

JZOJ 5356 偶环

模型转化后题意:给定一棵有N个点的树,有M条树上路径,每条路径有价值。现在要求选择若干路径,使得没有一条边同时包括在两个路径中,最大化价值和。且保证每个点度数<=10

Key:度数<=10提示了状压DP。设f[v][s]表示v的所有儿子子树内选择情况为s(二进制状态,0表示全不选,1表示可能选)