ARC092做题记录

想说的话

最近有点题荒,找了场简单一点好落实的ARC做了一下。

就是这一场了。

ARC092

C

题意

给两类点,第一类点为\((a_i,b_i)\),第二类点为\((c_i,d_i)\),若存在点对\((i,j)(i,j\in [1,n])\)使得\(a_i<c_j\)\(b_i<d_j\),则\((i,j)\)可以组称一对好点。问最多能组成多少对好点。点不可以重复利用。

Sol

本来以为是一道神题,在没看到不能重复利用之前还想CDQ分治。。。

直到看到:\(n\leq 100\)。。。

把边连出来之后二分图匹配就行了。。。

Code

D

题意

给两个长度为\(n\)的序列\(a_i,b_i\),求所有\(a_i+b_j\)的异或和。

Sol

考虑拆位计算。

答案的第\(i\)位为1当且仅当有奇数个\(a_i+b_j\)的第\(i\)位为1。

那对于第\(i\)位,我们把两个序列都对\(2^{(i+1)}\)取膜,然后排序,一个顺序一个倒序,这时若\(a_i+b_j\)的第\(i\)位为1,则\(2^i\leq a_i+b_j\le 2^{i+1}-1\)\(3\times2^i\leq a_i+b_j\leq 2^{(i+2)}-1\)

双指针维护即可。

Code

E

题意

给你一个序列\(a_i\),进行以下三种操作知道序列\(a_i\)只剩下一个元素为止。

  • 删除最前面的元素
  • 删除最后面的元素
  • 将一个非头非尾元素变为与它相邻的两个元素之和

要求最后剩下的数最大,并给出方案。

Sol

发现变化后元素位置的奇偶性不变,也就是说最后剩下的数只会是原先位置奇偶性相同的若干个数相加而成。

而负数可以直接丢弃,所以最大的答案就是奇数位置上的正数之和或者偶数位置上的正数之和。

构造先删负再合成。

Code

F

题意

给你一个有向图,对于每一条边,问翻转这条边之后图中的强连通分量数量是否改变。

询问相互独立。

Sol

大结论题。

很久以前做的

对于一条边\((a,b)\),反向后强连通分量数量不变的情况为以下两个条件同时满足或者同时不满足:

  • \(b\)可以到达\(a\)
  • \(a\)可以不通过\((a,b)\)这条边到达\(b\)

\(dfs\)解决一切。

Code

完结撒花❀

posted @ 2021-11-02 20:17  xxbbkk  阅读(47)  评论(0编辑  收藏  举报