ABC223比赛记录

想说的话

打了将近一个月的\(Atcoder\),包含\(VP\)在内应该有10场左右,一直没有时间总结,今天就把坑填了吧。

ABC223

A

询问一个整数是否是100的正整数倍。

B

问一个字符串的所有循环移位中字典序最大的和最小的。

循环一遍取出所有的字符串,排序即可。

C

\(n\)个保险丝,第\(i\)根保险丝的长度为\(A_i\),每单位长度燃烧所需要的时间为\(B_i\)​​,问当累计燃烧多少单位长度时燃烧时间刚好是总燃烧时长的一半?

首先算出总燃烧时长,再一根根去烧,累加长度,当剩余时间不够烧完当前这根时,就按照比例截取。

D

给一些偏序关系,要求取出一个序列,使它的字典序最小。

优先队列+拓扑排序,和菜肴制作那个题很像。

E

这个题真的恶心人。

给一个\(X\cdot Y\)的大矩形,问能否切出三个矩形使这三个矩形的面积至少为\(A,B,C\)

分情况讨论。

第一种:保留长或宽分成三个矩形,整个图案是"目"字形。

第二种:割一个矩形,再根据这个矩形的两边和原来大矩形的长宽平滑的割成三块。

交换\(X,Y\),枚举\(A,B,C\)的全排列可以避免关于匹配问题的讨论。

F

F没有E恶心人。

给定一个括号序列,实现单点修改,询问区间是否为合法的括号序列。

写个支持区间修改和区间最大最小值的线段树就好了。

G

换根DP。

\(f[st][0/1]\)​表示是否选取\(fa_{st}\to st\)这条边的最大匹配数。

换根的时候把父亲当成儿子讨论一下。

H

线性基。

把询问离线下来,线性基中除了元素外,还记录每个元素出现的尽可能玩的位置。

基本上是个板子,询问的时候关心是否用到了左端点以前的元素即可。

总结

这一场打的还不算差,只是E没做出来心态有点崩,就没看F了,这实在是一件遗憾的事。

打这种比赛一定要注意细节,保持好的心态,不要以为这个做不出后没的更做不出,要看完所有题。

撒花❀

posted @ 2021-10-19 19:32  xxbbkk  阅读(96)  评论(0编辑  收藏  举报