首页 > 其他分享 >2024.1 记录

2024.1 记录

时间:2024-03-04 21:36:29浏览次数:21  
标签:2024.1 le frac 记录 后缀 sum 位置 mathrm

1.10

HDU 6791. Tokitsukaze, CSL and Palindrome Game

经典结论是,

\[E(S)=\sum_{i\in \operatorname{border}(S)} 26^i. \]

并且一个回文串的所有 border 就是 PAM 上它的所有祖先。于是比较 \(E(S)\) 和 \(E(T)\) 的大小只需要在 PAM 上倍增。时间复杂度 \(O((n+q)\log n)\)。

CF1483F. Exam

枚举大串 \(s_i\) 的每个前缀 \(s_i[1,p]\),可以用 ACAM 找到最长的串 \(s_j\) 使得 \(s_j\) 是 \(s_i[1,p]\) 的后缀。小串的候选集合就是这 \(|s_i|\) 个 \(s_j\)。

把这些 \(s_j\) 在 \(s_i\) 中的出现区间画出来,那么所有完全被另一个区间包含的 \(s_j\) 就可以删掉。对于还没被删掉的串,统计其在 \(s_i\) 中出现了多少次,如果出现次数等于它作为最长后缀出现的次数,那么 \((s_i,s_j)\) 是一个答案。

统计出现次数需要用树状数组,时间复杂度 \(O(\sum |s_i|\log \left(\sum |s_i|\right))\)。

CF1276F. Asterisk Substrings

子串内 \(*\) 在边上或者不存在 \(*\) 的情况是好统计的。

考虑 \(A*B\) 这个字符串是不是集合内某个字符串的子串。建出正串后缀树和反串后缀树,设 \(A\) 在反串后缀树上对应的节点是 \(u\),\(B\) 在正串后缀树上对应的节点是 \(v\),只要 \(\exists x\in \operatorname{endpos}(u),x+2\in \operatorname{endpos}(v)\) 即可。

所以反串后缀树上一个节点对答案的贡献,就是它的 \(\operatorname{endpos}\) 在正串后缀树上的链并。用树链剖分和线段树合并维护子树链并的大小即可。\(O(n\log^2 n)\)。

CTSC 2016. 香山的树

以下认为对于一个串 \(s\),如果 \(i>|s|\),则 \(s[i]=s[i-|s|]\)。

考虑计算以一个串 \(t\) 为前缀的,长度不超过 \(n\) 的满足条件的串 \(s\) 的个数。有两种情况:

  • \(t<s[i,i+|t|-1]\);
  • \(t=s[i,i+|t|-1]\) 且 \(s[t+1,|s|]<s[i+|t|,|s|]\)。

发现不必限制得如此严格:只需要 \(t\le s[i,i+|t|-1]\),然后只要 \(s\) 不是循环串,就只有恰好一个位置 \(i\) 使得 \(s[i,|s|]s[1,i-1]\) 是满足条件的,且这个位置一定是 \(t\) 的某个出现位置。

可以在 KMP 自动机上进行 DP,记录当前匹配到自动机上的哪个节点,以及 \(t\) 完整地出现了多少次(这里也需要考虑 \(s\) 的一个后缀拼上一个前缀等于 \(t\) 的情况)。设 \(t\) 出现了 \(c\) 次,对答案的贡献系数就是 \(\frac{1}{c}\)。

还需要去除循环串的贡献。设 \(g_i\) 表示长为 \(i\) 的非循环串,且无限循环后以 \(t\) 为前缀,且满足 \(t\le s[i,i+|t|-1]\) 的串的个数。

如果 \(i\le |t|\),那么只有在 \(t[1,i]\) 是 \(t\) 的周期且 \(t[1,i]\) 本身满足条件的时候,\(g_i=1\)。

对于 \(i>t\),需要减去每个 \(j<i\) 且 \(j\mid i\) 的 \(g_j\) 的贡献。这里的贡献系数一定是 \(\frac{j}{i}\),因为 \(g_j\) 表示的是非循环串,而每个 \(g_j\) 表示的串内 \(t\) 都出现了恰好一次。

回到原来的问题,只需要先枚举与 \(S\) 的 LCP 长度,再枚举下一个字符填什么,然后用上面的方法计算即可。

1.14

ABC336G. 16 Integers

构造一个 \(8\) 个点的图 \(G\),点的标号为 \((x,y,z)\),其中 \(0\le x,y,z\le 1\)。认为一个给定的 \((i,j,k,l)\) 是从 \((i,j,k)\) 连向 \((j,k,l)\) 的 \(X_{i,j,k,l}\) 条边,则题目描述的长为 \(N+3\) 的序列可以表示为,从某个点开始,经过每条边恰好一次的一条路径。由于不区分重边,所以需要除以 \(\prod_{i,j,k,l} X_{i,j,k,l}!\)。

这几乎就是欧拉路径或欧拉回路计数。具体地,如果 \(G\) 是半欧拉图,设出度比入度大 \(1\) 的点是 \(s\),入度比出度大 \(1\) 的点是 \(t\),连一条 \(t\to s\) 的边,转化为欧拉回路计数。

根据 BEST 定理,从一个点 \(s\) 开始的欧拉回路的个数是

\[t_w(G)\times \mathrm{deg}_s!\times \prod_{u\neq s} (\mathrm{deg}_u-1)!. \]

其中 \(t_w(G)\) 是以任意一个点为根的内向生成树个数。

算出这个式子以后,如果 \(G\) 是半欧拉图,那么需要钦定 \(t\to s\) 的边是最后走的,所以需要除以 \(\mathrm{deg}_s\)。如果 \(G\) 是欧拉图,那么从任意一个点开始走都是可以的,所以先选任意一个点当作 \(s\),算出上述式子的值 \(A\) 以后,答案就是 \(\frac{A\times \sum_{i,j,k,l} X_{i,j,k,l}}{\mathrm{deg}_s}\)。

1.17

ABC308Ex. Make Q

1.18

ABC310Ex. Negative Cost

ABC306Ex. Balance Scale

ABC305Ex. Shojin

1.19

GDKOI 2024. 染色

不会这种题,比较失败。

首先考虑如何将恰好一个位置 \((x,y)\) 异或 \(1\)。显然先操作一下这个位置,然后这个位置四周的四个位置都会异或 \(1\)。为了消去这四个位置的 \(1\),可以操作这四个位置。不断进行这个过程,发现进行了 \(2^k\) 轮的时候,恰好有四个位置是 \(1\):与 \((x,y)\) 在同一行或同一列,且距离 \((x,y)\) 恰好 \(2^k\) 的位置。称这样的 \(2^k\) 轮操作是一个大小为 \(k\) 的操作。

所以,经过 \(2^n\) 轮后,这四个位置会与 \((x,y)\) 重合,这样就只有 \((x,y)\) 是 \(1\) 了。

如果有多个位置需要异或 \(1\),可以倒着考虑这些操作:一开始这些位置需要大小为 \(n\) 的操作,而每个大小为 \(n\) 的操作都可以用五个大小为 \(n-1\) 的操作完成,最后只剩了一些大小为 \(0\) 的操作,而这就是单点操作。

时间复杂度 \(O(n2^n)\)。

(这种题应该手玩一些 \(n\) 比较小的情况,不应该优先考虑找规律。)

GDKOI 2024. 计算

首先,当 \(a,b>0\) 时,\(F(m,a,b)=m^{\gcd(a,b)}\)。所以一定有 \(L\equiv 1\pmod m,R\equiv 0\pmod m\)。所以这段区间是 \(n=\frac{R-L+1}{m}\) 个完整的 \([0,m)\) 区间拼成的。

列出式子:

\[\sum_{0\le x_0,x_1,\dots,x_{m-1}\le n} \left[m\ \middle|\ \sum_{i=0}^{m-1} ix_i\right] \prod_{i=0}^{m-1} \binom{n}{x_i} \]

单位根反演,并做一些化简:

\[\frac{1}{m}\sum_{i=0}^{m-1} \prod_{j=0}^{m-1} (1+\omega_m^{ij})^n \]

\(n\) 次方可以提到乘积外面,考虑这个乘积的式子,由于单位根的几何意义,设 \(d=\gcd(i,m)\),它等于:

\[\prod_{j=0}^{\frac{m}{d}-1} (1+\omega_{\frac{m}{d}}^j)^d \]

由于有如下因式分解:

\[x^k-1=\prod_{i=0}^{k-1} (x-\omega_k^i) \]

代入 \(x=-1,k=\frac{m}{d}\) 即可化简上述式子。然后做莫比乌斯反演即可。

IOI 2024 集训队互测 Round 10. 雷同

将所有书按照重量从小到大排序。考虑建出合并的二叉树,设 \(\mathrm{dep}_i\) 表示第 \(i\) 本书的深度,答案由两部分组成:

  • 每个 \(i\) 的 \(w_i\times \mathrm{dep}_i\);
  • 二叉树上每个非叶子节点 \(u\),设它的两个儿子的子树高度是 \(h_1,h_2\),对答案的贡献是 \(2^{\min(h_1,h_2)}-1\)。

注意到 \(\mathrm{dep}_i\) 一定单调不增,所以子树高度一定有 \(h_1\ge h_2\)。

按深度从大到小逐层 DP,由于深度大于某个值的一定是一个前缀,所以设 \(f_{i,j}\) 表示当前这一层有前 \(i\) 本书,形成了 \(j\) 个子树的最小代价。加入一本书时:

  • 将这本书放在这一层,作为一个新的子树;
  • 然后进行若干次合并,每次将所有相邻的子树合并成一个新的(\(j\) 个子树会变成 \(\frac{j}{2}\) 个)。这里最优的合并方式一定是按顺序合并,因为这样可以使得新形成的树的高度最小。

这里合并的代价不好计算,但是注意到新加入的一个排名为 \(j\) 的单点,对答案的贡献是固定的一个值 \(v_j\)。

时间复杂度 \(O(n^2)\)。

1.20

GDKOI 2024. 匹配

首先用网络流求出一组完美匹配。如果它有偶数条黑色边就做完了,否则需要在残量网络上找到一个有奇数条黑色边的简单环。

设状态 \((u,v,c)\) 表示可以找到一个从 \(u\) 到 \(v\) 的路径,其黑色边个数的奇偶性是 \(c\)。为了找到简单环,BFS 到第一个 \(u=v\land c=1\) 的状态就结束即可。

可以做到 \(O(n^{2.5}+\frac{n^3}{w})\)。

IOI 2024 集训队互测 Round 17. 区间切割

1.22

ARC170E. BDFS

1.23

ARC141D. Non-divisible Set

1.30

ARC141E. Sliding Edge on Torus

1.31

ARC137E. Bakery

标签:2024.1,le,frac,记录,后缀,sum,位置,mathrm
From: https://www.cnblogs.com/alan-zhao-2007/p/18052736

相关文章

  • 2024.2 记录
    2.11ARC171E.Rookhopper'sTourtodo。2.14NFLS模拟.发讲义原题:UR#7.水题走四方。2.15NFLS模拟.达拉然的废墟题意:\(T\)次询问,每次给定正整数\(n,k\),定义一个长为\(2n\)的排列\(p\)是好的,当且仅当\(p_2<p_4<\dots<p_{2n}\)。定义一个方案是将一个好的排列\(......
  • 线上问题记录:因闰年导致的数据查询错误
    在今天的生产环境测试中,测试发现几个数据页面显示为空白。反馈给开发后,通过查看相关接口和后台日志,发现某个查询SQL出现了问题,错误信息如下:此查询功能的前后端近期没有改动,排除是改动造成的。从日志上看,导致错误的原因是无效的时间查询参数20230229。结合业务分析,我们需要查......
  • Windows操作系统中的时间戳(Timestamp)是指用于标记事件发生时间的一种时间表示方式。在
    Windows操作系统中的时间戳(Timestamp)是指用于标记事件发生时间的一种时间表示方式。在计算机系统中,时间戳通常用来记录文件的创建时间、修改时间、访问时间等信息,也常用于网络通信中的认证和数据同步等场景。以下是Windows时间戳的基础技术原理:系统时钟:Windows操作系统通过系统......
  • ctfshow刷题记录-社工篇-1
    0x00题目来源:ctfshow-网络谜踪(社工类)题目描述:flag格式为ctfshow{纬度(精确到小数点后四位,不用进位),经度(精确到小数点后四位,不用进位)}例如若找到的经纬度为(11.45149,19.19810)则flag为ctfshow{11.4514,19.1981}(附件地址:https://ctfshow.lanzoui.com/iRHlmtek0ra)......
  • ctfshow刷题记录-cry方向-1
    0x00题目来源:ctfshow菜狗杯crypto方向base47题目描述:神必字符:E9CVT+HT5#X36RF4@LAU703+F$E-0N$@68LMXCVDRJJD5@MP#7MUZDTE?WWLG1S#L@+66H@59KTWYK8TW0RV神必字典:0123456789ABCDEFGHJKLMNPQRSTUVWXYZ?!@#$%^&*-+0x01第一次做这种base换表的题目,在网上查了查相关wp,感觉自......
  • ffmpeg记录
    最近工作中有用到ffmpeg,这里做一下简单的记录:1、虚拟机平台安装ffmpeg使用apt进行安装sudoaptupdatesudoaptinstallffmpeg之后安装一些需要的安装包sudoaptinstalllibavcodec-devlibavformat-devlibavutil-devlibswscale-dev这样就编译OK了,之后编译程序,使用下......
  • 2024-2-26启 记录
    2-26~3-3(5题)寒假又tm荒废了,今年应该是我在OI道路上的最后一年了,可能确切地说是六个月,不多说什么了,时间不多了,做什么事都要高效起来。开学第一个星期,有点不适应,shabby一中搞半月假,周考也炸了。摸了几题前缀和的题目做,算是练练手,感觉差不多找回来了。现在大致的计划是先......
  • 2023.3 做题记录
    2023.3做题记录注:只摘录具有较高思考价值以及较高思维含量的题目(说白了就是颓出来的题)。[JSOI2008]火星人我们只考虑查询操作,方法很多,例如KMP、哈希、SA。此时考虑修改,由于KMP、SA不好维护修改后的数组,因此考虑哈希。我们利用二分答案的方式求出长度,利用哈希检查即可。......
  • 6. 活动记录 | 2. Tiger 编译器的栈帧
    栈帧栈帧是指函数在被调用时,所拥有的一块独立的用于存放函数所使用的状态和变量的栈空间。每个函数都对应有至少一个栈帧。同一个函数多次进入,每次可能会分配到不同的栈帧。整个栈的内容在同一个时刻可以看作是由许多栈帧依序“堆叠”组成的。两层抽象Translate模块frame......
  • 红米note4x mido移植Ubuntu20.04过程记录
    mido设备移植Ubuntu20.04一、初始化环境1.安装编译依赖环境#这里宿主机使用Ubuntu20.04系统sudoaptinstallbinfmt-supportqemu-user-staticgcc-10-aarch64-linux-gnukernel-packagefakerootsimg2imgimg2simgmkbootimgbisonflexgcc-aarch64-linux-gnupkg-config......