摘要: CF 1455 G. Forbidden Value 题解 本来想抢一个一血的,但是晚上状态不佳,没调出来就睡觉了。 首先我们可以将这些操作看作一个一个的$[if...end]$样子的block。不妨可以在最外层套一个,if(0)...end. 一个比较显然的dp状态:$dp[i][j]$表示你从i 阅读全文
posted @ 2020-12-03 17:02 WWW~~~ 阅读(132) 评论(0) 推荐(0) 编辑
摘要: CF 477 D Dreamoon and Binary 这题比较easy。 首先可以发现是dp。 可以设dp状态为$dp[i][j]$。表示[i,j]。 每一个状态存储两个值: 最小次数,再次基础上的操作次数 我们就叫它们fir和sec吧。 初始化$dp[0][0]={0,0}$ 可以发现一个比较 阅读全文
posted @ 2020-12-03 16:40 WWW~~~ 阅读(149) 评论(0) 推荐(0) 编辑
摘要: arc 048 d 假设要从$s$到$t$,中途在$i$的位置出去走到一个特殊点,然后再回来走到t。 可以发现从i出去走到的关键点一定是距离i最近的那个关键点。 首先处理出所有点到最近的关键点的距离,记为$dis_i$。 则从i走到最近的那个关键点再走回i需要花费$3\times dis_i$的时间 阅读全文
posted @ 2020-12-03 13:40 WWW~~~ 阅读(52) 评论(0) 推荐(0) 编辑
摘要: gym 100958 b 若我们按照第一个字符将字符串分类,可以发现所有的字符串形如: a... a... b... b... b... . . z... z... 由于开头是a的一定比开头是b的小,所以这两类就可以分开考虑了,而同一类就只需要比一下后$len-1$个字符,这样就转换成了几个子问题。 阅读全文
posted @ 2020-12-03 12:54 WWW~~~ 阅读(87) 评论(0) 推荐(0) 编辑
摘要: arc 043 c 若我们另外弄两个数组$a'$和$b'$,其中$a'[i]$表示i在$a$中的位置,$b'[i]$表示i在b中的位置。 则転倒距離就是有多少对$(i,j)\(满足\)(i<j)$且$a'[i],a'[j]$和$b'[i]$和$b'[j]$的大小关系不一样。这样就可以发现有解的充要条 阅读全文
posted @ 2020-12-03 12:50 WWW~~~ 阅读(78) 评论(0) 推荐(0) 编辑
摘要: arc 045 d 首先,有解的充要条件是什么? 若我们将横坐标一样的merge起来,纵坐标一样的merge起来。有解的必要条件是每一个联通块的大小是偶数。那么怎么证明是充分的呢? 我们可以将这些点一层一层的画出来: 若一行是没有连的点个数是偶数,就直接两两消除。不然就让那个下面有点的剩下来。 不过 阅读全文
posted @ 2020-12-03 12:48 WWW~~~ 阅读(90) 评论(0) 推荐(0) 编辑