2021/10/26测试

T1

线性DP,直接转移是\(O(n^2)\)的复杂度,通过记全局加标记\(lazy\)可以实现\(O(n)\)复杂度转移。

T2

直接枚举数对为\(O(n^2)\)的复杂度,肯定要超时。所以考虑桶处理。记t[i]为度数为i的点个数,先不考虑两点之间的重复计算的边,a[i]表示上述情况下影响边数为i的数对个数。又因桶的种类数为\(2\sqrt{m}\)(一条边添加2个度,总共2m个度,最坏情况是度为1有1个,度为2有1个,以此类推,1+2+…+x=2m,x约为\(2\sqrt{m}\)),枚举桶处理a[i]复杂度为\(O(4m)\),最后通过前向星枚举边,修改a[i]的意义为答案为i的数对个数\((a[du[u]+du[v]]--; a[du[u]+du[v]-cnt[v]]++;)\),统计后缀和输出即可。

posted @ 2021-10-26 22:58  一张十万元  阅读(50)  评论(1)    收藏  举报