2024.11.11 总结

For:2024.11.11

继续补集训基础题。。

上午

树的重心知识点 :

  0. 怎么求?树形 \(dp\) 记录子树大小
  1. 重心 \(<=>\) 该点的所有子树大小均不超过树的一半
  2. 如果树的重⼼不唯⼀,则只有⼀种情形:\(>-o-o-<\)
  3. ⽤⼀条边将两棵树连接起来,新的重⼼在原来分别的重⼼的连线上。
  4. 如果⼀个树增添或删去⼀个叶⼦,则树的同⼀个重⼼最多移动⼀个节点。
  5. 树中所有点到某个点的距离和中,到重⼼的距离和是最⼩的。

P1395 会议

  树中所有点到某个点的距离和中,到重⼼的距离和是最⼩的。所以只需求树的重心即可。

P1364 医院设置

  直接用树形 \(dp\) 求出以 \(1\) 为根时的答案,然后进行换根 \(dp\) 即可,本质上是在求带权树的重心。

Kay and Snowflake

  第一次 \(dfs\) 求子树大小,第⼆次 \(dfs\) 求树的重⼼的时候求出每个节点⼦树的重⼼,由树的重⼼的性质,新重心在两个旧重心连线上,只需从⼦节点⼦树重⼼位置往上枚举即可,由于找重心深度单调增,每个点只会额外多访问一次,均摊 \(O(n)\)

  比较好猜的结论,如果原先重心唯一,随便删边再加回来,不唯一 只能是 \(>-o-o-<\) 的情况,删⼀个叶节点加到另⼀个重⼼上即可。通过树的重心子树大小不超过树的一半的结论,可证明重心唯一。


P6175 无向图的最小环问题

  考虑 \(floyd\) 中类似于松弛的转移,\(i-j-k\) 即为构成环,\(floyd\) + 求最小环。

P2419 [USACO08JAN] Cow Contest S

  一头奶牛的排名确定等价于与其它每头奶牛的大小关系确定,\(floyd\) 做传递闭包,最后统计答案即可。

下午

P1938 [USACO09NOV] Job Hunt S

  按题意建图,\(spfa\) 跑最长路,判正环。

P5905 【模板】全源最短路(Johnson)

  先跑一边 \(spfa\) 求出超级源点到每个点的距离 \(h[i]\) 然后将边权修改为 \(w+h[u]-h[v]\)\(n\)\(dijstla\) 复杂度 \(O(mnlogm)\)

突然发现 所有最短路算法的结构体都可以用pair代替,之前手写排序结构体麻烦了。

P1330 封锁阳光大学

  二分图染色

GSS1 - Can you answer these queries I

  线段树经典题,每个节点维护,\(l,r,lx,rx,sum,mx\) 代表左右端点,前后缀最大区间和,区间总和,最大区间和,合并时要注意新的前后缀是:一个节点的区间总和加上另一个区间的最大前后缀,或者前后缀,取这两者中的较大值。

晚上

GSS3 - Can you answer these queries I

  加个单点修改函数。

P3831 [SHOI2012] 回家的路

  分层图最短路,且只有换乘车站和起终点有用,将每个点拆成横与纵两个方向,\(1~m\) 为横,\(m+1~2m\) 为纵,实现直接建边很麻烦,可以分别按 \(x,y\) 为关键字排序,只在相邻节点连边,然后在每个点 \(i\)\(i+m\) 间连换乘边,起终点换乘时间为0。

P1993 小 K 的农场

  其中 \(a=b\) 可拆成 \(a\leq b\cup b\geq a\) 然后直接跑差分约束,但是这道题有问题,建边数组大小只开到2倍会 \(TLE\),直接开了5倍

posted @ 2024-11-12 06:57  HCNX  阅读(40)  评论(0)    收藏  举报