arc121简要题解

ARC121

  • 打UR去了,这里是补的题。
  • A:简单取横纵坐标前 k k k大或小的点,两两配对即可, k k k可以随意取到3.
  • B:如果全部颜色的个数都为偶数则答案为0,否则考虑 A , B A,B A,B为奇数, C C C为偶数,那么要么 ( A i , B j ) (A_i,B_j) (Ai,Bj),要么 ( A i , C k ) , ( B j , C l ) (A_i,C_{k}),(B_j,C_l) (Ai,Ck),(Bj,Cl)配对,绝对值最小值直接排序指针扫一下。一开始没有考虑到后一种爬了。
  • C:考虑将 1 − n 1-n 1n依次放到对应的位置上,不妨假设现在 a a a位于 x x x,且 x ≠ a x\neq a x=a,需要将它移动到 a a a上,那么如果当前奇偶性可以动 x − 1 x-1 x1,那么显然可以直接连续移动到 a a a,否则就随便操作一个位置改变一下奇偶性(操作 a a a)。只有当最后三个位置出现 n − 2 , n , n − 1 n-2,n,n-1 n2,n,n1并且不能直接操作 n − 1 n-1 n1时要微调。
  • D:考虑如果只有1个当作和 0 0 0匹配,枚举新加入多少个 0 0 0,现在将新的序列两两匹配,并要求答案最小。进一步的我们可以发现如果将序列排序,那么匹配的区间两两相交,再进一步如果有 A ≤ B ≤ C ≤ D A\le B\le C\le D ABCD,那么如果有 ( A , C ) , ( B , D ) (A,C),(B,D) (A,C),(B,D),那么 ( A , D ) , ( B , C ) (A,D),(B,C) (A,D),(B,C)会更优,因此首尾依次匹配即可。
  • E:考虑容斥,设 f [ x ] [ i ] f[x][i] f[x][i]表示 x x x子树内有 i i i个点存在祖先能到它,直接考虑 x x x是否放到子树内即可。
  • F:一开始想了一些贪心策略,但是都不靠谱,还是树形DP好。简单的思路就是考虑一个子树内, o r   0 , a n d   1 or\ 0,and\ 1 or 0,and 1都是无效操作,只需要保留 a n d   0 , o r   1 and\ 0,or\ 1 and 0,or 1,即 f [ x ] [ 0 / 1 / 2 ] f[x][0/1/2] f[x][0/1/2]表示无有效儿子, a n d   0 and\ 0 and 0以及 o r   1 or\ 1 or 1。如果儿子两个都有则钦定顺序使得 o r   1 or\ 1 or 1在后面,然后讨论当前点以及它的父亲边的情况,有可能出现先与父亲合并再走子树的情况,转移即可。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值