省选联考总结

2023.12.11

先调整状态,比赛好像不是很能做出题,每次都应该冲一道正解,然后暴力打满,争取高的部分分

T1

题目大意

有个大小为h的画布,大小为n的画笔,定义画笔为\(\{d_i,i\in[1,n-1]\}\),表示可以在\(\{x,x+d_1,x+d_1+d_2...\}\)的位置涂颜色,要求每个位置都要涂恰好一次,且不能涂出界,问画笔有几种

sulotion

首先观察结论,若有\(d_i=1\)定义其为连续段,可以发现连续段之间的间隔一定要相等,才合法。然后连续段的大小也要相等,设其为x,那么间隔大小一定为x的倍数

考虑一下朴素dp,设\(f_{i,j}\)表示大小为i的画布,大小为j的画笔,连续段的大小为1的方案数,那么\(ans=\sum_{k|n}f_{\frac hk,\frac nk}\),发现f转移需要容斥...,好像会T

然后考虑优化,设\(g_{i,j}\)表示大小为i的画布,大小为j的画笔,连续段大小大于1的方案数。然后转移\(g_{i,j}=\sum_{k|j}f_{\frac ik,\frac jk}\),考虑一下如何从g转移到f

发现一个双射的关系,把连续段长度为1的画笔每次涂的第一个位置提出来,发现恰好对应\(f_{i,j}=g_{i,i/j}\)

所以直接记搜即可

T2

题目大意

  1. 区间+
  2. 求一段时间的某个区间的历史最值

solution

考虑一下朴素的线段树,然后每个节点维护一个单调栈,维护历史最值和时间戳(一段连续的上升只维护最后一次),然后发现这样的话,懒标记要像历史最值一样多维护一个,然后每次查询在线段树节点的单调栈上二分即可

小细节就是上push_up和push_down是都要更新单调栈,然后在时间段的左端点上还要额外跑一次区间最值

2023.12.14

T1

题目大意

有一个全部为 \(0\) 的序列,进行了 \(m\) 次区间加 \(1\) 操作,变成 \(A\) 序列。现在可以撤销k次操作,变成 \(B\) 序列,定义\(B_i\le\dfrac{A_i}2\)时有 \(w_i\) 的贡献,问可以达到的最大贡献(\(n\le1e4,m\le1e5,k\le\min(m,5)\)

solution

因为k比较小,所以我们发现A中大于等于10的我们都不用管了,我们考虑把区间操作都挂在点上,然后进行DP。设 \(f_{i,j,s}\) 表示到第i位,用了j次撤销,对于当前点挂的区间的撤销状态为s,转移时,我们先把上一个 \(f_{i-1}\) 转移到 \(smx_i\) 上,使得两者共有的区间相对应,然后 \(smx_i\) 内部再进行转移更新新的区间,再去转移 \(f_i\)

然后我们发现瓶颈在于 \(smx_i\) 的内部转移,是 \(O(n4^kk^2)\) 的。考虑如何优化掉,我们发现只用更新新的区间,所以就用vector把新的区间存下来,只更新新的区间即可,总时间复杂度: \(O((n+m)4^kk)\)

2023.12.15

T3

题目大意

给定一个网格图,上面有些障碍,我们要在某些点放宝箱,使得每一条从左上角到右下角的路径都有恰好一个宝箱,问摆放宝箱的方案数

solution

首先通过简单找规律可以发现,没有障碍时的答案为\(n+m-1\) 这启发我们,宝箱是呈45度的斜线摆放,然后就考虑,宝箱和障碍一定把图分割开了

先把一定走不到的点统计出来,那里的宝箱可以任意摆放,然后就把平面图转对偶图

然后发现一点重边,再去重...

![](C:\Users\Administrator\OneDrive\图片\下载 (1).png)

2023.12.19

T1

...

T2

网络流建模,然后缩点能过...

小tip,如果网络建模,可以先建INF边,然后就可以缩点了

2023.12.20

T1

题目大意

有长度为n的画布,有m种颜色,k条限制,每条都形如\([l,r]\),要求\([l,r]\)中至少有一种颜色出现次数大于一次,问画布的方案数

solution

这是典型的容斥,和at_dp_y几乎是一个思想...

\(f_i\)表示不满足i限制,但满足\(1\sim i\)限制的方案数,然后转移就是简单的容斥,总方案数-非法方案数

代表元容斥,非法方案就是\(\sum_j^{i-1}w(j,i)f_j\),其中\(w(j,i)\)表示从\(r_j\)\(r_i\)随便填,但要满足不满足i限制

可以发现就是分两种情况讨论即可

T2

题目大意

给定一棵树,你可以任选起点,每次移动要求移动到距离当前点最远的点,问移动k轮的方案数

solution

首先可以矩乘

可以发现,除了刚开始,其他时刻的位置一定是直径端点

考虑一个小tips,以树的中点为根,把直径端点当叶子,则根的第一代儿子的叶子个数相同的子树,里面叶子的答案都一样,于是就只有\(\sqrt n\)个状态,可以直接\(矩乘\)

2023.12.22

T1

结论题

2023.12.23

T1

T3

posted @ 2024-03-01 11:32  zhy_learn  阅读(4)  评论(0编辑  收藏  举报