似乎是第一次认真打ARC,其实仍然在摆烂
A - Make 10
题意:给长度为2,3,4的木棒分别$a$,$b$,$c$根,求能拼成至多几根长度恰为10的木棒
题解:发现无论如何长为10的木棒都包含一个长度为6的,所以考虑先使用长度为3的
按以下顺序:①3+3+4 ②3+3+2+2 ③4+4+2 ④2+2+2+2+2是最优的,直接计算即可
时间:$O(1)$ 空间:$O(1)$
B - Cross-free Matching
题意:给2排每排$n$个点和$m$条线段,第$i$条线段连接第一排第$a_i$个点和第二排第$b_i$个点
求最多能选取几条线段,使得选取的线段两两不相交(端点重合也算相交)
题解:按照$b_i$从小到大为第一关键字,$a_i$从大到小为第二关键字对线段排序
遍历第二排每个点$x$,对于每一条线段$(a_i,x)$,树状数组维护第一排连接点不超过$a_i$的最大线段选取数
因为一个端点只能连接一条线段,所以$a_i$要从大到小排序
时间:$O(n\logn)$ 空间:$O(n)$