BUPT 2022 Summer Training #3

题目链接:https://vjudge.net/contest/502702
其实这套之前写过,下面只写新补的题

B - The Power Monitor System

题意

给定一棵树,要求将所有点和边染色,在一个点上放置可以染色这一点和相邻的边,并有下列规则:

  1. 染色边相邻的点会被染色
  2. 两个染色点之间的边会被染色
  3. 如果一个点相邻的所有边中只有一条未被染色,那么这条边也会被染色
    求最小放置数。

难写的树形dp做法

见此文

奇妙的贪心做法

  • 如果两个及以上子节点没有被染色那么当前节点必须放置
  • 如果恰好一个子节点没有被染色那就有放置当前节点和放置父节点两个选项,显然放置父节点更优
  • 如果子节点全部染色就把父节点也染了

就这样

I - The Spectrum

题意

有n个互不相同的数,现在给出这些数两两的差的绝对值,要求给出这n个数的所有可能取值,规定最小数为0(n≤62)。

思路

首先显然最大的那个差值确定了最大的数,那么用掉这个信息之后还有什么信息可以确定呢?按照同样的思路考虑剩下最大的那个数,这个数必然肯定是a[1]和a[n-1]或者a[2]和a[n]的差值。

具体来说,从两边往中间填充这n个数,如果填充了1到l和r到n,那么剩下的最大差值必然是a[1]和a[r-1]或者a[l+1]和a[n]产生的,如果最大差值剩余个数为1,那么二选一,如果最大差值剩余个数为2,那么两者皆有或者正好在中间,如果最大差值剩余个数为3,那么不可能有解。

按照上面的思路搜索即可,由于实际上剪枝非常强力所以是可以通过的。

posted @ 2022-07-15 13:58  wild_chicken  阅读(11)  评论(0)    收藏  举报