「考试」省选27

好像很迷?

T1
很奇怪的期望。
根据那几个条件可以发现,概率最终会收敛到精度以下。
我们只需要迭代足够的轮次即可。

T2
暴力的\(O(n|S|2^n)\)都过了。。。
奇怪。
发现答案是求并集,考虑基础的并交容斥。

设\(g(S),S\subseteq A\)为\(S\)中的所有的情况中\(S\)的所有串的公共前缀长度*这种情况发生的方案数。
\(P(S)=\),\(S\)中的问号个数。
那么\(g(S)\)对全局的贡献是\(g(S)2^{P(A-S)}\)
\[ans=\sum\limits_{S\subseteq A}(-1)^{|S|-1}g(S)2^{P(A-S)}\]
\(hang[i][j]\)代表第\(i\)个串的问号前缀和。
\(dp[i]\),\(S\)中的所有串的公共前缀长度为\(i\),同时不考虑\(i\)以后的部分的影响的情况下的方案。
\[gs[j]=\sum\limits_{i\in S}hang[i][j]\]
其中\(j\in[1,min\{len\}]\)。
如果\(S\)中的每个串的第\(i\)位都不为\(1\),那么\(ch[i][0]=1\),\(ch[i][1]\)的定义类似。
\(dp[i]=dp[i-1]*[ch[i][0]==1||ch[i][1]==1]\)
另外一种全是问号的转移\(gs[i+1]-gs[i]==|S|\rightarrow dp[i]*=2\)
\[g[S]=\sum\limits_{i=1}^{min\{len\}}dp[i]*2^{gs[max\{len\}]-gs[i]}\]
这个的原因是考虑每一个位置做出的贡献。
这样就可以求出答案了。
预处理一下可以做到\(O(|S|2^n)\)

T3
首先没有小部分分。
猜结论。
发现如果除了\(i\)之外的雷达全都确定高度了,那么\(i\)的最优决策一定是\(0\)或者\(y_i\)。
考虑一个\(O(n^2)\)的暴力。
按照\(x+y\)排序然后直接暴力\(dp\)。
事实上把枚举范围卡到300以内就可以\(AC\)了。
发现转移按照\(L_i\)分成了两部分。
对于:\(R_j<=L_i\)的部分可以直接前缀\(max\)+二分。
如果:\(R_j>L_i\)。
这一部分我们要求东西有决策单调性 。
题解说是搞一个二分单调栈就行。
然后听脸哥讲了一下,发现如果不在乎\(log^2\)的复杂度的话,其实直接用\(cdq\)+决策单调性的模板就可以了。
先更新左边然后在当前区间用左边更新右边,然后处理右边就行了。

原文地址:https://www.cnblogs.com/Lrefrain/p/12336320.html

时间: 2024-08-30 17:28:25

「考试」省选27的相关文章

「考试」省选模拟13

在家的又一场. 状态还是一般吧. 自己扔了30分. T1 比较厉害的\(dp\),考场上想到了,结果因为细节太多就没有写(真的是多). 他其实就是个基环树dp. 我们首先断掉环上某个边,然后进行一次最大匹配的\(dp\),然后这样要求这个边必然不选. 另一种情况是这个必然选,那么这条边终点的出边必然不选,再次断那个出边 再\(dp\)一次得到答案. 考虑如何输出方案. 对于一个位置我们记录这个点的最大值出现在\(0/1\)上. 然后根据这个找到最佳方案所依赖的子节点方案. 即可输出方案了. T2

「考试」省选5

这套做的比较顺. 题也很好. T1 一个简单的贪心. 我们二分能够无伤通过的蛤个数. check就用之前用烂了的队列来check. 然后我们知道无伤通过最多一定对应这所有的石头被踩完,因为这样可以让每只蛤单次跳跃距离的最大值尽量的小. 这也就是说两种最优操作是合在一起的,有点像\(CSP-2019 D2T2\). 那么,二分出来剩下的就是必然要跳出大于\(D\)的了,我们取最小的几只,让他们一步从\(1\)跳过去. 另外一种情况是没有蛤可以无伤过. 这时候就让最便宜的那只去踩地雷,踩过所有的石头

「考试」省选7

比较简单的一场,但是我好像做的xibalan. 上来看了一小时题啥也不会. 然后发现\(T2\)数据范围像是分块. 然后傻逼一样去打根号算法. 最终结果当然是死了,到九点半也没写出来. 然而早就会\(T1\)正解了,于是先五分钟拿了\(T3\)的30分(为啥60那么好打..). 然后半个小时打完\(T1\)(临接表被卡常到90?) 然后继续搞T2最后弄出来了. 剩下十分钟啥也没干,三分块长从\(12s\)变成了\(2s\). T1 原题,\(xor\)差分之后就没了. T2 数据结构题毫无思维难

「考试」省选模拟12

状态不好考的不行(x 还是在家里不够专注吧(? T1 一个简单的离散化+bfs 细节不少 一个区间直接把两个端点都离散进去就行了. 统计答案的时候按块统计答案. T2 减枝的搜索. 不是特别难. 发现其实格子并不是很多. 被\(K\)给限制住了. 太多的都是0. 那么\(n+m-1\)的大小必然是小于等于10的. 直接爆搜. 剪枝要用到一个小技巧. 当前如果许多个颜色并没有放过,那么我放上一种颜色搜索一下得到答案,那么这几个颜色是等价的可以直接不重复搜索,然后将答案乘上个数. T3 挺厉害的\(

「考试」省选22

... T1真的我方了. T1 计算几何. ... 不管我用什么方法都\(A\)不了. 不管是用正弦定理余弦定理还是别的什么. 咕了. T2 简单的差分+马拉车. 先用马拉车处理出以每个位置为重心的回文串的长度. 然后处理出两个数组,\(st[i],ed[i]\). 分别表示以这个点为起点的回文串的终点的总和,以这个点为终点的回文串的起点的总和. 然后可以认为相当于是离线对数组加一个公差相等的等差数列,记录一下当前有几个数列以及首项的和即可线性差分了. 那么答案就是: \[ans=\sum\li

「考试」省选23

好难啊... T3 讲了一次了,不过似乎大家都没有听懂. 详细的复读一次. 这个题是构造题. 首先题意转化. 我们发现一个\(E\)的序列的形成过程中任意时刻的图都可以对应为一个大小为\(i\)大强连通分量和\(n-i\)个单独的点的形式. 因为只有一个强连通所能到达的状态是最多的,这样我们求出这种图的方案就是\(E\)序列的方案. 然后设\(dp[e][i]\)为大强联通有\(i\)个点,总共有\(e\)条边的方案数. 转移很简单,枚举一个新圈即可: \[dp[e][i]=dp[e-1][i]

「考试」省选37

今天的题超极棒. T1 汉诺塔问题. 我们考虑把汉诺塔想象成一颗搜索树. 然后在上面找到当前的某一步就相当于递归到最底层. 然后中间判一下合不合法,如果走右儿子就加上左边的贡献就行了. 大概是个noip题... T2 设函数\(next(n,k,s)\)为大于等于\(n\)的\(k\)进制数中,各个位和为\(s\)的最小正整数. 这个玩意可以用一个数位\(dp\)实现,复杂度是\(O(klogn)\),判断一下剩下的位置的最大和是否大于剩下的\(s\)即可. 然后有了这个函数之后我们就可以做了.

「考试」省选56

直接全都WA爆了. T1 博弈论模型,其实就是转化成\(xor\)和为\(0\). 我们考虑朴素的\(dp\),\(dp[i][j][k]\)设为前\(i\)个元素,去掉的元素个数\(mod\ d\)为\(j\),\(xor\)和为\(k\)的方案. 暴力转移即可. 考虑最终答案是\(dp[n][0][0]\) 我们降序排序\(\{a\}\) 那么如果\(upbit(a_i)=2^j\),说明转移过来的\(k\)必然是小于\(2^{j+1}\)的. 这样我们转移的时候就可以指转移\(2^{j+1

「考试」省选61

T1 dy讲的原题. 建议去翻\(DC\)大神的\(dp\)视频课. T2 结论题. 一种想法是抽象为一个\(ans+1 n\)的矩阵. 每次从上面一段连续区间向底层走. 维护每一个位置最高的高度是多少就可以得到答案了. 这里用一个队列实现. 每一个位置的队列长度可以用来更新答案. T3 生成函数题. 考虑容斥. 用走了几条输入边来容斥. 设\(dp[i][s]\)为当前在\(i\)点,经过的点集为\(s\)的方案数. 设\(f[s]\)为经过的点集为\(s\)的方案数. 设\(g[i][s]\