首页 > 其他分享 >luogu 模拟赛

luogu 模拟赛

时间:2024-10-15 15:44:09浏览次数:6  
标签:遍历 luogu 线段 序列 考虑 不难 节点 模拟

A.带余除法

我们不难考虑找出 \(q\) 的上下界,不难发现范围是 \([\lfloor\frac{n}{k+1}\rfloor+1,\lfloor\frac{n}{k}\rfloor]\)。当然这个区间可能为空。只需算出区间长度即可。

B.奖牌排序

不难考虑到分别按照三个关键字排序,然后对于每个小朋友找到每个关键字下的排名(同分取第一个),取一个最小值就做完了。

C.三目运算

每年必出的大模拟,但这题好像还有图论?我们考虑找出每个 ? 匹配的 :,这个是不难做的,用一个栈就行。

接下来考虑把一个分段常数表达式看成三部分:? 前面的,?: 之间的,: 后面的,记为 \(u,a,b\)。

接下来考虑 \(u\) 对 \(a,b\) 分别连边,就形成了一棵树。于是暴力就是好想的了,每次询问遍历一遍树。但是这样很容易被卡,例如下面这样:

image

这种结构会导致每次遍历是 \(O(n)\) 的,直接超时。于是考虑怎么优化。

发现慢的原因是每次询问都要遍历一次树,那么考虑所有询问一起遍历。

具体地,把所有询问离线下来,扔到一个序列里排序去重,每个树上的点必然把一部分分到左子节点,另外一部分分到右子节点。只需要记录这个点处理的是序列中的 \([l,r]\) 部分就可以完成划分操作。到达叶子节点直接赋值即可。其实上面的过程就是整体二分。

D.配对序列

看到最优化问题,不难想到贪心或者动态规划。仔细构造几组样例就可以发现贪心假了,于是考虑动态规划。

设 \(f_{i,0}\) 表示第 \(i\) 个位置作为一个子序列的开头,已经凑出来的配对子序列的长度最大是多少;\(f_{i,0}\) 表示第 \(i\) 个位置作为一个子序列的结尾,已经凑出来的配对子序列的长度最大是多少。

不难得出转移方程:\(\displaystyle f_{i,0}=\max_{j<i}(f_{j,1})\),其中 \(a_j\ne a_i\);\(\displaystyle f_{i,1}=\max_{j<i}(f_{j,0})+2\),其中 \(a_j=a_i\)。

暴力转移时间复杂度是 \(O(n^2)\) 的,考虑数据结构。发现最值可以使用线段树维护,只需要把原序列离散化然后使用线段树转移即可。第 \(j\) 棵线段树的 \(i\) 节点存的值为 \(f_{i,j-1}\),其中 \(j=1\) 或 \(j=2\)。

标签:遍历,luogu,线段,序列,考虑,不难,节点,模拟
From: https://www.cnblogs.com/zxh923aoao/p/18467631

相关文章

  • 【高分论文密码】AI赋能大尺度空间模拟与不确定性分析及数字制图
    随着AI大语言模型的广泛应用,大尺度空间模拟预测与数字制图技术在不确定性分析中的重要性日益凸显。这些技术已经成为撰写高分SCI论文的关键工具,被誉为“高分论文密码”。大尺度模拟技术能够从不同的时空尺度揭示农业生态环境领域的内在机理和时空变化规律,为复杂过程模型的模拟......
  • 2024-10-10 模拟赛总结
    \(100+100+0+20=220\),部分分还是没有拿满。比赛链接:http://172.45.35.5/d/HEIGETWO/homework/6707886f6735d3863dc8c0ef或http://yl503.yali.edu.cn/d/HEIGETWO/homework/6707886f6735d3863dc8c0efA-植物收集/collect题意:你要收集\(n\)个阶段的植物,你可以选择花费\(a......
  • 【STL】模拟实现list
    目录list需要实现的接口结点类的创建迭代器类的实现构造函数++运算符的重载--运算符的重载!=运算符重载和==运算符重载operator*operator->list的模拟实现构造函数拷贝构造函数 赋值运算符重载函数析构函数迭代器相关函数begin和endfront和backpush_front......
  • 1014 CW 模拟赛 D.进化
    题面挂个pdf题面下载算法分析题目发现,一次进化等效于:在\(a\)两端加\(0\)对于\(i\in[1,n],a_i\leftarrowa_{i-1}\oplusa_{i+1}\)于是猜测在\(k\)次操作之后有\(a_i\leftarrowa_{i+k}\oplusa_{i-k}\)代入计算后发现这个式子显然错误,原因......
  • 2024/10/14 模拟赛总结
    \(0+100+40+0=140\),怎么都会T3啊#A.char令\(dp_{i,j}\)为已经考虑了文本串前\(i\)位且将所有*填入了字符,匹配了模式串的前\(j\)位的方案总数转移显然,若第\(i\)位不是*,则只有这一位和模式串相等才会有答案,即\(dp_{i,j}=\begin{cases}dp_{i-1,j-1}&s_i=t_k\\0&......
  • csp-s模拟11
    赛时rank11,T1100pts,T217pts,T30pts,T40pts,T510pts这场模拟赛就是糖,告诉我题目难度不按升序排列就是除了T1我都不会呗。玩水(water)签成了,还签了个首切?定义一个形如\(\begin{matrix}A*\\*\\end{matrix}\)的为一个角,角的位置为A的位置。有解的时候就是两个角相邻或......
  • 『模拟赛』CSP-S模拟11
    Rank地狱场,一般A.玩水(water)签。发现\(n\le1000\),\(T\le10\),\(\mathcal{O(Tn^2)}\)可过,所以简单考虑。我写的好像是dp?为每个点开一个大小为26的状态,表示从哪个字母转移而来的方案数,到该点的全部合法方案数即为\(\max_{i\in\left[0,25\right]}\cnt_i\)。由于是......
  • 「模拟赛」CSP-S 模拟 11(T2 超详细)
    比赛链接A.玩水(water)签到。发现如果要找两条路径的话,能找到的充要条件是存在一个点的上方和左方的字母相同。(即使两条走过的点截然不同的路径也符合,这时终点会成为这个点)。即存在一个位置\((i,j)\)使得\(s_{i-1,j}=s_{i,j-1}\),我们称位置\((i,j)\)是好位置。扩展到三......
  • 2024.10.13 模拟赛
    2024.10.13模拟赛T1「KDOI-10」商店砍价赛时直接口胡出一个错误的贪心。一开始的想法是按照\(v[i]\)排序,然后假设输入的长度为\(n\)位。那么对于排序后\(n-5\)位直接选择操作一。对于剩下的,直接bdfs所有情况选答案,复杂度\(O(n\logn)\)。貌似可行,结果随便一个数据......
  • [47] (CSP 集训) CSP-S 模拟 11
    因为有人想看T3\(nk^2\)所以先发一下A.玩水注意到只有在形如下面这样的地方才会发生分叉?aa?所以\(f_{i,j}\)表示从\((1,1)\)到\((i,j)\)的矩阵中的最大路径方案数,考虑转移普通的转移是\(f_{i,j}=\max(f_{i,j-1},f_{i-1,j})\)如果\(a_{i-1,j}=a_{i,j-1}\),则有......