csp-s模拟测试45(庆祝乔迁之喜)

因为搬新机房所以题很友好?

T1:

大佬都用二分+贪心秒切了,只有我这只菜鸡先打了个状压,然后证出了一个小性质O(n^2)dp过的

T2:

考场上打了个恶心的状压,考后发现还没暴搜跑得快,emmm。。。

正解不考虑最优方案是啥,直接考虑每一条边的贡献。

设此边为(a,b),统计从a点来的关键点和b点来的关键点。

如果a>b,那么次边的贡献为b,即他的意义为,贪心的将a的联通块的点都尽量连出到b联通块,剩下的a联通块的点都互相连。

<树上问题的经典思路:把贡献考虑成每条边|点,那便不需要考虑最优策略具体是什么>

T3:

严重怀疑出题人并不会造数据,问最小生成树竟然给不联通图,卡掉20分,无f**k可说。

正解是跑全局的最小生成树,按其中的树边和非树边分类。

首先,tarjan判割桥就不解释了。

然后,非树边,考虑连接他的(a,b),找到最小生成树中a->b的路径上的最大值,他的答案为最大值-1。表示当(a,b)<max时,才能代替路径上的某条边来加入最小生成树。

最后,树边,和非树边类似,只不过找的是最小值。

可用树链剖分|树上倍增解决。

<没有考虑最小生成树的生成过程,而是把树建完以后的影响>

2019-09-17

原文地址:https://www.cnblogs.com/2018hzoicyf/p/11544309.html