码迷,mamicode.com
首页 > 其他好文 > 详细

省选模拟(61~65)

时间:2020-04-03 19:45:54      阅读:68      评论:0      收藏:0      [点我收藏+]

标签:区间   ace   表示   连通   单调队列   中间   集合   递增   一个   

省选模拟61

1.GTM

\(BIT\)
把所有点按照下标排序后,考虑消灭一个点会给多少个点消灭掉
发现左边速度比它大的和右边速度比它小的都能够通过接触它消灭
继续分情况,考虑左边速度比它小的一些点
如果速度比右边速度的最小值要大的话就可以通过接触右边的点消灭
同理对于右边速度比它大的点只要比左边最大值小就照样可以消灭掉
所以每个点能够消灭的,是速度一段区间内的点\([min,max]\)
然后就是线段覆盖问题了

2.字符串游戏

?
考虑已经知道答案是多少了,然后就是有一个\(ans*n\)的网格
\(t\)串在上
现在要求从每个\(t\)串上的点走到\(s\)串的某个位置\(pos[i]\),并且要求路径不能有交
求最小的\(ans\)
发现首先这个\(pos\)是单调递增的才行
然后就是考虑为什么会有\(ans\)这个长,是因为路径被迫在\(y!=0\)的时候转弯了
也就是后边有多少个\(pos<i\),答案就至少是多少
所以用个单调队列记录下后缀的\(pos\)在队头删掉大于\(i\)\(pos\)然后更新答案就可以了

3.ACE

考虑容斥
用已有的边容斥,容斥的是至少用了几条坏边
用了几条坏边就会少几个连通块,所以可以用连通块来容斥
(可是我想不到)
所以状压\(dp[i][S]\)表示\(S\)这个集合形成一条链的方案 数
然后背包集合的方案数\(O(14*3^14)\)
然后求出来了有\(i\)个链的方案数
然后可以自乘\(n\)次,代表了一共有\(i\)条链的方案数
\(*i!\)就代表我至多有\(i\)条链方案数,并且中间连接的边有可能是坏边,所以是容斥

省选模拟(61~65)

标签:区间   ace   表示   连通   单调队列   中间   集合   递增   一个   

原文地址:https://www.cnblogs.com/hzoi2018-xuefeng/p/12628378.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!