省选模拟(21-30)

省选模拟21
A. 灯
题意:

n=m=q=1e5
题解:根号算法平衡复杂度。首先把相连的同色块缩成一个
对于数量<√n的颜色采取暴力更新的手段;
对于数量>√n的颜色如果可以O(1)得到答案;每次更新完一种颜色后更新根号种大块的答案。
具体的,记录每种颜色左右下标的颜色,以及小块颜色所有的位置下标。对大块处理出一个数组res表示改变这个大块的状态时能,+-num-res就是这个大块的贡献。
考虑如何计算出这个res。
考虑添加一个颜色时它左右的大块颜色都会加一的贡献:添加时会减少1的贡献,删除时会增加1的贡献。
考虑删除一个颜色时它左右的大块颜色都会减一的贡献:添加时会增加1的贡献,删除时会减少1的贡献。
一个下标的贡献可以是1 0 -1,这是有0 1 2个元素相邻时的贡献。
很经典的根号做法,难度在于想不到res这个数组以及更新时也会很难想。
View Code

B. 十字路口
题意:
题解:在这m次观察中,同一个灯不同的红灯状态之间连观察的边(根据红灯给观察连边),如果成环了就说明是周期的整数倍。
暴力就是O(n^2m)条边,正解优化边数,按权值排序后直接相邻连环一定是答案。
View Code

C. 密室逃脱
题意:n=1000 m=10000
题解:考虑一般形态一定是隧道被划分成了若干段,每段由若干小段组成。不妨设f[[i][j]为考虑到第i个隧道恰好能留j个人时前i个隧道的最大人数。
本题题解的性质是“每个房间能留下的人数是固定的”
转移就很简单了.
j<a[i] f[i][j]->f[i+1][j+b[i]],f[i+1][0~b[i]-1]
a[i]<=j<a[i]+b[i] f[i][j]->f[i+1][j-a[i]]
a[i]+b[i]<=j<=20000 f[i][j]->f[i+1][j]
p.s. 上界要开到两倍m emmm
难度在于dp定义以及这个dp定义的性质。
View Code
省选模拟22(联考)
A. 遮天蔽日
题意:地球周围有个多边形,多边形自转+绕地球公转,求太阳某一时刻找到地球上的弧长。
题解:用三角剖分求重心的方式求出多边形的重心大致就是从第二个顶点开始相邻的和第一个节点组成的三角形的重心按面积带权平均。
把一个点绕着中心旋转theta:用两点距离和横坐标差,反三角函数倒出原向量与x轴正半轴的夹角,再+/-theta。
求切线:用两点间距离和半径倒出夹角,然后使两点连线旋转theta,求这条直线与圆的交点。
求垂足:先算叉积除以底就是距离,然后可以求出点到顶点的一条长度=距离的向量,再用上面旋转的方法求出此向量
求交点:求完垂足再进行类似的操作就有了交点...
B. 三元组
发现题目是一个求双回文串个数,manacher求出以之为起点终点的方案再一拼就好了,用差分来实现这个过程。
C. 最有价值
发现一个物品的价值只会被统计一次,所以大概是网络流。
物品权值有正有负,有“选我必须选他”的样子就是最大权了。
省选模拟25(待补
省选模拟26

A. 染色问题
设dp[i][j]表示考虑前i种颜色覆盖了j个格子的方案数.
首先列出普通的dp式子(虽然对我来说很大神吧)
\[dp[i][j]= \begin{cases} dp[i-1][j]+\sum\limits_{k=0}^{j-1}dp[i-1][k](k+1)&i \not =m\\ \sum\limits_{k=0}^{j-1}dp[i-1][k](k+1)&i=m\\ \end{cases} \]
接着考虑dp[0][0]对dp[m][n]的贡献.
设经过的序列长度为k,其实就是最终格子上有k种颜色.
首先,前边的dp[i-1][j]可以通过组合数C(m-1,k-1)来统计,原理大致上是....(好吧其实现在我不知道以后再补).
后面的系数相当于序列的每一项+1乘起来.
那么如果我们构造出一个多项式\[\prod\limits_{i=2}^n(x+i)\]
它第n-k项的系数就是相当于在[1,n-1]中任意选择了(n-1-(n-k))=k-1项作为序列每一项然后还乘上了每一项+1.
为什么只选择k-1项呢?因为最后一次涂颜色一定会涂上格子所以不能选择(我莫得选择)
那么分治FFT可以做到O(nlog^2)了.只有80分.
考虑已知\(F_t(x)=\prod\limits_{i=1}^{2^t}(x+i)\),如何求出\(F_{t+1}(x)\).
发现\(F_{t+1}x=F_t(x)F_t(x+2^t)\).
所以就可以只递归左边右边拆掉\((x+2^t)^i\)二项式定理展开了.
可能右边比左边项数多一,再把多出来的那一项暴力FFT上去.
复杂度O(nlog).
字'太多以后还是一个一个来吧,容易卡

猜你喜欢

转载自www.cnblogs.com/hzoi2018-xuefeng/p/12347726.html