3.5省选模拟
$3.5$
$T1$
考场上感觉是个统计一下入度就好了,发现自己是神笔
首先肯定的,已经凑好的不选了,那么其余的就贪心的选就好了
还是想从入度是零的开始计算,必然每个点都需要找一个点去匹配,那么入度是零的点必然需要匹配
那么匹配的话,找已经连接的肯定是最优的
其实最后的图也是一些链
具体实现的话,先把已经满足的全部提出来
然后把其余的图提出来搞一个贪心
大概就是一个个匹配就好了,然后每次匹配一个点,后面的加进队列里
想一想,这样的话即使中间有匹配不上的,肯定后面也会找一个匹配上了(我考场上这个地方没有想通),毕竟$ans$加了两次
$T2$
感觉这个东西是个$dl$数据结构题,悲...
$emm,$这个东西更改方式就很麻烦,大概是一个二维差分
首先看一下一个的影响
然后转化成二维差分
发现这个会超出边界...但是很悲的是,这里需要加亿点点细节...
这个东西规律很显然了,真是想不到切米雪夫和二维差分的结合...
$T3$
考场上想到预处理两个城市之间的最短路径,然后答案的话,就是两点之间最长的最短路径的长度
显然的这个东西必然在最小生成树上,因为这个贡献是两点之间所有路径最长的,我肯定是让最长的最短
那么显然是如果走任何非最小生成树上的边肯定不优,也绝对不存在任何一条不是最小生成树上的路径
如果有的话,必然是可以替代最小生成树的边,那么这个东西就跑出一个最小生成树,随便写一下就好了
那么最小生成树怎么生成,考虑多源$BFS$,然后把所有可能的边存下来,跑一遍最小生成树
那么考虑把每个点的势力范围划分出来,那么把最初相遇的点全部搞出来连边就好了,我还是觉得写个树剖也不错