HYNB Round 8: 2016 ICPC Amritapuri Regionals

A - Tim and BSTs

做法

  • 经典的树 DP 问题。
  • \(dp[u][i]\) 表示考虑以 u 为根子树,u 的 rank 为 i 方案数。
  • 关于 \(dp[u][]\) 的计算,枚举左子树有几个比根小的,枚举右子树有几个数字比根小。合并两棵子树的复杂度为 \(O(sz_1 * sz_2)\),因此可以 \(O(n^2)\) 计算答案。

B - A Historic Discussion


C - Influence on Social media

做法

  • 预处理所有合法的数字,合法的数字一定是 \(p^k\) 形式,其中 \(k+1\) 为质数。
  • 注意排序输出。

E - Black Money Island

做法

  • 问题转化为给一个图,有白边和黑边,问是否存在恰有 k 条黑边的生成树。
  • 第一眼带权二分......... 有点憨憨。
  • 口胡一个引理:对于任意一棵包含黑边数最少的生成树 \(T_1\),存在一棵包含极多黑边的生成树 \(T_2\),使得 \(T_1\) 中的黑边是 \(T_2\) 中黑边的子集。
  • 口胡一个证明:考虑 \(T_1\) 中黑色的非树边,逐条添加,加上后得到一个环,如果环上存在白边,删除白边,如果不存在,删除刚添上的黑边。
  • 问题就好做了。

F - Notes and GPS Chips


G - Hawala Arrests

做法

  • 考虑树是根链的 case,问题是个经典的序列上贪心问题:序列上,选择极少的点,使得每个区间至少包含一个点。
  • 把连通块的根当成右端点即可。
  • 不会证明。

H - Netcoin Verification


I - Mancunian Hoards Black Money


J - Bob vs ATM

做法

  • 根据括号序列建树。
  • 删除一段相当于删除子树,树上删边游戏。

K - Paint for Vernon

猜你喜欢

转载自www.cnblogs.com/FST-stay-night/p/11512127.html
今日推荐