3.5省选模拟

$3.5$

$T1$

考场上感觉是个统计一下入度就好了,发现自己是神笔

首先肯定的,已经凑好的不选了,那么其余的就贪心的选就好了

还是想从入度是零的开始计算,必然每个点都需要找一个点去匹配,那么入度是零的点必然需要匹配

那么匹配的话,找已经连接的肯定是最优的

其实最后的图也是一些链

具体实现的话,先把已经满足的全部提出来

然后把其余的图提出来搞一个贪心

大概就是一个个匹配就好了,然后每次匹配一个点,后面的加进队列里

想一想,这样的话即使中间有匹配不上的,肯定后面也会找一个匹配上了(我考场上这个地方没有想通),毕竟$ans$加了两次

$T2$

感觉这个东西是个$dl$数据结构题,悲...

$emm,$这个东西更改方式就很麻烦,大概是一个二维差分

首先看一下一个的影响

然后转化成二维差分

发现这个会超出边界...但是很悲的是,这里需要加亿点点细节...

这个东西规律很显然了,真是想不到切米雪夫和二维差分的结合...

$T3$

考场上想到预处理两个城市之间的最短路径,然后答案的话,就是两点之间最长的最短路径的长度

显然的这个东西必然在最小生成树上,因为这个贡献是两点之间所有路径最长的,我肯定是让最长的最短

那么显然是如果走任何非最小生成树上的边肯定不优,也绝对不存在任何一条不是最小生成树上的路径

如果有的话,必然是可以替代最小生成树的边,那么这个东西就跑出一个最小生成树,随便写一下就好了

那么最小生成树怎么生成,考虑多源$BFS$,然后把所有可能的边存下来,跑一遍最小生成树

那么考虑把每个点的势力范围划分出来,那么把最初相遇的点全部搞出来连边就好了,我还是觉得写个树剖也不错

 

posted @ 2022-03-05 15:25  Authentic_k  阅读(26)  评论(0编辑  收藏  举报