Solution Set -「LOC 4344」

cirnovsky /

Link.

非常无语. 😅

∆ A. 道路 (road)

总共四种情况, 可分为拐一次弯和拐两次弯, 注意特判同行同列即可.

∆ B. 烟花 (firework)

转化后的题意就是, 每次选择一条边, 将边连接的两点缩成一点, 求在该点子树中选择不超过 mm 个儿子, 儿子们的子树大小之积之和. 朴素做法就是枚举断边, 令 fi,jf_{i, j} 表示在前 ii 个儿子中选择了 jj 个的积之和, 转移即:

fi,jfi+1,jfi,j×aifi+1,j+1f_{i, j} \rightarrowtail f_{i+1,j} \\ f_{i, j} \times a_i \rightarrowtail f_{i+1,j+1}

其中 aia_i 表示第 i+1i+1 个儿子的子树大小 (0-indexed). 第一维可以滚掉. 发现这个贡献形式是可撤销的, 于是遍历到每条边时, 将端点之间的贡献消除即可.

∆ D. 树上的数 (tree)

一步一步翻译题意.

  1. 存在相邻边编号更小: 由于第一步加入的编号是 11, 就意味着我们一定按从小到大的顺序加载编号, 否则就会出现中间断开的情况;
  2. 极差之和最小: 由 (1) 得, 点 uu 编号最小的连边一定是父边, 那么编号最大的连边就是子树中最后被加载的儿子与 uu 连边的编号. 由于贡献是极差, 只与差值相关, 因此可以直接应用贪心, 按 BFS 序从子树大小最小的儿子加到重儿子, 这样就能获得最小的极差. 那么最小的极差和即为 usizeusizesonu\displaystyle \sum_u size_u-size_{son_u}.
  3. 断边的影响: 看了一多小时还不会, 先坑了. 🕳

/ 路在拥挤的行人中落寞孤独,因为它得不到行人的爱慕。 /

/ The road is lonely in its crowd for it is not loved. /

—— Rabindranath Tagore - Stray Birds