- 博客(4)
- 收藏
- 关注
原创 codeforce962div3 A-E
思路:对于子区间我们可以考虑用前缀和处理为1时加一为0时减一,这样当一段前缀和为零时此时01相等,对于小区间被多少大区间覆盖考虑用组合相乘计算(大区间长ans小区间长度为n时此时有ans-n+1种组合)但此时区间个数还是n平方复杂度会超时。这里cnt维护的是左边区间的长度(假设前缀和相同的点x1,x2,x3,x4,x5,我们选择任意两个点都可以作为一个区间,我们发现当x1为左端点 x2x3x4可作为右端点,x2时x3x4x5可作为右端点,组合中x1提供的方案数不变,因此我们可以预处理出右端点,维护后缀和)
2024-08-14 01:45:44
298
原创 codeforce 964div4
按照贪心的原则,对于字符串中的?尽量满足与子字符串中字符匹配,其他字符也尽量满足匹配.每次匹配成功l向后移动一位当l越界后重新变为0,k记录长度当大于子字符串长度则满足题意。1. 若要将所有数字变为0,则只能操作[y/3] ,则要多进行操作[y/3 ] ,另一个数字要进行x * 3,则x = 0。2. 什么数字最容易变为0 , 最小的数字,先让最小的数字变为0,然后让其他的数字变为0。3. 每个数字变为0的操作次数是不变的,则可以用前缀和。只需间隔区间长度大于s,注意要插入首端与末尾的区间。
2024-08-14 01:12:17
204
原创 洛谷4011 孤岛营救 图的拆点,键边与状态dp
通读本题发现 每次移动的代价都是 1或0,所以我们可以考虑 01BFS;又因为 P 的范围很小,可以对 P 进行状压,记 𝑐𝑜𝑠𝑡(𝑖,𝑗,𝑘)表示到 (𝑖,𝑗)拥有的钥匙集合为 𝑘k 的最小花费,维护 i,j,k 进行 01BFS,一旦有解直接返回,需要判断无解情况。一共有两种操作 当前是否存在钥匙 以及向周围扩展。
2024-04-25 17:50:59
297
原创 第十一届蓝桥杯省赛第二场C++ C组 作物杂交 特殊建图
假定有关系(a,b,c),即a和b杂交可以生成c,我们就根据此关系构建两条边,第一条:a -> c,边权维护时间w以及节点b,第二条:b -> c,边权维护时间w以及节点a,当我们遍历到a的时候可以找到c,同样当我们遍历到b的时候也可以找到c,并且我们可以通过边权读取到与这个节点a关联的另一节点b,这样我们便完整描述了所有节点之间的关系,问题转化为了一个图的问题。由于已知作物不止一个,所以这并不是一个单源最短路径问题,多源最短路显然超时,我们需要对问题再作更近一步的转换。(记录与a相关联的点)
2024-04-17 00:39:39
488
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人