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

7.18 模拟赛

时间:2024-07-20 21:41:16浏览次数:7  
标签:log rvert 复杂度 7.18 lvert mathcal sum 模拟

总结

一堆知识点忘了导致什么都写不了

  • T1 不会写欧拉回路,改罚。
  • T2 卡到 0/1 分数规划的部分,赛时推二分做法没搞出来。
  • T3 暴力。为什么不考虑退火?
  • T4 暴力和部分分都是特别好想的,由于前面花的时间过长没来得及写。

很多 板子/trick 都要复习一遍。


题解

card

考虑每一个串 \(S\) 的内部,1 之间的间隔必须恰为 \(m\)。将前后缀 1 的位置处理出来。建立点 \(0\sim m-1\),在 \((b-j)\) 和 \((b-j+\lvert S\rvert)\)​ 之间连有向边,一个从 0 考试到 0 结束的欧拉回路就是一个合法拼接顺序,问题转化为找最小字典序欧拉回路。

时间复杂度为 \(\mathcal O(\sum\left\lvert S_i\right\rvert+m)\)。

market

最坏情况相当于 \(w_0=r_0,\forall i>0,w_i=l_i\),那么问题转化为找到一个集合 \(S\) 让期望最大。

式子为

\[\frac{\sum\limits_{i\in S}w_iv_i}{w_0+\sum\limits_{i\in S}w_i} \]

考虑二分,判断期望是否不小于 \(p\),化简有

\[\sum_{i\in S}w_i\left(w_i-p\right)\geq w_0p \]

可以二分计算单次询问的答案。

多次询问在值域线段树上二分即可。时间复杂度为 \(\mathcal O(m\log V)\)。

dating

先考虑一维问题。发现取中位数是最优的,因为 \(x,y\) 两个维度互相独立,所以分别取中位数计算即可。

根据上面的启发,可以猜想目的地一定由某个 \(x_i,y_j\) 组成。因此目的地的范围缩小到 \(\mathcal O(n^2)\),枚举目的地,可以做到 \(\mathcal O(n^3)\) 或 \(\mathcal O(n^3\log n)\)。

令目的地坐标为 \((a,b)\)。固定 \(b\) 的值,从小到大扫描 \(a\) 的值,随着 \(a\) 的变化,点 \(x_i,y_i\) 到 \((a,b)\) 的距离只会在 \(a\geq x_i\) 时切换一次表达式,即 \(\lvert y_i-b\rvert+\lvert x_i-a\rvert\)。将 \(x_i<a\) 的 \(i\) 放进集合 \(L\),其余放进集合 \(R\),那么 \(L,R\) 固定的时候只需分别找最小的 \(k_1,k_2\) 个元素,使得 \(k_1+k_2=k\) 且总和最小,动态维护 \(L,R\)。

具体地,用堆维护 \(L,R\) 集合并保留当前方案最优的 \(k_1,k_2\),把 \(a\) 转移的过程中,若有 \(c\) 个点 \(L\to R\),那么 \(k_1,k_2\) 的改变量是 \(\mathcal O(c)\) 的。时间复杂度为 \(\mathcal O(n^2\log n)\)。

string

考虑 \(P\) 的出现情况,令插入后 \(S=L+B+R\)。

  1. \(\lvert B\rvert>\lvert P\rvert\)。
  • \(P\) 完全包含于 \(L/B/R\),可以直接 \(kmp\) 预处理。

  • \(P\) 跨过 \(L,B\) 分界线,那么要找的 \(x\) 满足 \(B\) 的长度为 \(x\) 的前缀等于 \(P\) 的长度为 \(x\) 的后缀。

    建立 \(P\) 的 fail 树。把所有 \(\lvert P\rvert -x\) 打上标记,那么在 \(i\) 后插入 \(B\) 的匹配数量就是 fail 树上 \(A[:i]\) 匹配到的最长前缀结点的祖先的标记数量和。\(B,R\) 分界线翻转字符串再做一次即可。

  1. \(\lvert B\rvert\leq\lvert P\rvert\)
  • 多了一种跨过两个分界线的情况。

    找出所有 \(B\) 在 \(P\) 中匹配位置 \([x+1,x+\lvert B\rvert]\),然后转化为统计有多少位置的 \(i\) 满足

    \[A[i-x+1,i]=p[:x]\and A[i+1,i+\lvert P\rvert-\lvert B\rvert]=p[x+\lvert B\rvert+1:] \]

    求出 \(A[:i]\) 匹配的最长前缀长度 \(u\) 和 \(A[i+1:]\) 匹配反串的最长长度 \(v\),那么就是求有多少个 \(x\) 满足 \(x\) 在正串 fail 树上是 \(u\) 的祖先且 \(\lvert P\rvert-\lvert B\rvert-x\) 在反串 fail 树上是 \(v\) 的祖先。

    于是转化成为一个二维数点,时间复杂度为 \(\mathcal O(n\log n)\)。

标签:log,rvert,复杂度,7.18,lvert,mathcal,sum,模拟
From: https://www.cnblogs.com/QcpyWcpyQ/p/18313843

相关文章

  • 7.20 模拟赛
    总结今天暴力打的还可以,但除了暴力全挂了。t1方法一数位dp还是不够熟悉;方法二容斥,虽然想题的时候有往容斥的方面思考,但是只差一步的时候放弃了。t2\(a+b<c\)的trick第一次见,想清楚之后就很好写。t3高维前缀和,反复学反复忘的东西。t4败笔,冲了2.5h没写出来,tarjan+......
  • 暑假集训csp提高模拟3
    赛时rank20,T10,T245,T320,T495T1粘了两遍(因为OJ卡第一次没有显示出来)CE了,挂了100,T4没卡常挂了5汤碗了!!!!!!!!!!!!!!!T1abc猜想对于任意整数\(c\)都有\[\left\lfloor\frac{a}{b}\right\rfloor+c=\left\lfloor\frac{a}{b}+c\right\rfloor=\left\lfloor\frac{a+bc}{b}\right\rf......
  • 2024.7.20 模拟赛总结
    T1lcdStatement:给定\(n(1\len\le10^8)\),问有多少对\((i,j)(1\lei,j\len)\)满足\(\frac{xy}{\gcd(x,y)^2}\le3\)。Solution:简单题。令\(x'=\frac{x}{\gcd(x,y)},y'=\frac{y}{\gcd(x,y)}\),枚举\((x',y')\)并计算即可......
  • 格子玻尔兹曼模拟在对象掩模上运行,模拟应该只是黑色的区域
    我正在尝试使用该方法模拟特斯拉阀门,从此代码开始。问题在于遮罩、边界或反弹未正确应用。如果我反转创建障碍物遮罩的条件,则流量似乎更多地在阀门内部流动。图像:障碍物遮罩模拟输出使用相反遮罩的模拟|||完整代码:......
  • day4 链表-模拟与快慢指针
    目录任务24.两两交换链表中的节点思路19.删除链表的倒数第N个节点思路面试题02.07.链表相交思路142.环形链表II思路总结任务24.两两交换链表中的节点给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节......
  • 暑假集训CSP提高模拟3
    暑假集训CSP提高模拟3\(T1\)P117.abc猜想\(100pts\)原题:[ARC111A]SimpleMath2由题,有\(\dfrac{(a^{b}-a^{b}\bmodc)\bmodc^{2}}{c}\)即为所求。证明设\(\left\lfloor\dfrac{a^{b}}{c}\right\rfloor=\dfrac{a^{b}-a^{b}\bmodc}{c}=kc+r\),其中\(r......
  • Ryujinx(Switch模拟器) v1.1.1353 中文版
    Ryujinx是一款免费、开源的NintendoSwitch模拟器,它可以在电脑上模拟NintendoSwitch游戏机的运行环境,让玩家们能够在PC上畅玩Switch游戏。Ryujinx支持大部分NintendoSwitch游戏,包括TheLegendofZelda:BreathoftheWild、SuperMarioOdyssey等知名游戏,而且还......
  • 暑假集训CSP提高模拟2
    T1看到这时限和内存,连一个数组都开不下,更别说离散化了,考试的时候我用了一个栈来模拟,相同留、进,不同退,可以说是很接近正解了,但还是没继续往下想,也是爆零了。正解的思路很简单,这里引出一个概念,摩尔投票法,适用于超过半数(不能等于)的众数,可以在常数的空间下、\(O(n)\)的时间复杂度下......
  • 「模拟赛」暑期集训CSP提高模拟2(7.19)
    学长组题+预告:题会有点难雀氏。。。题目列表A.活动投票B.序列C.LegacyD.DP搬运工1A.活动投票题意:衡中活动很多,人也很多,一次活动有$n$个学生参与投票,现已知一名参赛选手票数超过半数,求其参赛号$ai$​(参赛号随机,$0≤ai≤21474836470≤ai​≤2147483647)$。很......
  • 7.18 史也分好坏,R959 是好史。
    CFR959(Div.1+2)Solve:A~E(5/8)Rank:777Rating:\(2117-1=2116\)发挥评价:Bad唉,天天喂这种比赛。然后我自己在简单题上唐完了,被卡住了,而且还被cf的波特验证控住了。以后少慌,加快速度,提前截好图。(其实最后已经会G了写完就上大分,但是来不及咯)争取下次上分吧。......