ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

刷(shui)题记录2022.4

2022-04-11 20:02:09  阅读:203  来源: 互联网

标签:子串 记录 luogu texttt 个数 rm 2022.4 shui Rightarrow


[ABC247-F] Cards

\(\Rightarrow \rm AT\) 链接

转化问题,将每一张牌看成一条边 \((P_i,Q_i)\) ,问题就转化成若干个环的答案积,每一个环的答案都是选择若干边,使得所有点都至少存在一条边被选择的方案。考虑断环为链,可以发现可以用 \(\rm dp\) 解决,设 \(f_x(n,0/1)\) 表示预设第一个点是否选择 \(x\in \{0,1\}\) ,考虑了前 \(i\) 个点,其中第 \(n\) 个点是否已经被覆盖的方案数,转移显然。那么一个大小为 \(n\) 的答案是 \(f_0(n,1)+f_1(n,0)+f_1(n,1)\) 。

[CF1601-C] Optimal Insertion

\(\Rightarrow \rm luogu\) 链接

将 \(b\) 从小到大排序,这时 \(b_i\) 插入位置设为 \(p_i\) 表示插入到 \(a\) 的第 \(p_i\) 个数和第 \(p_i+1\) 个数之间。那么有 \(p\) 单调不降。证明可以考虑排序之后交换 \(b\) 中的两个数,可以发现答案一定会变劣。

考虑分治,用函数 \(\mathrm{solve}(l_a,r_a,l_b,r_b)\) 计算 \(b_{l_b\dots r_b}\) 的位置,位置可以为 \(a_{l_a\dots r_a}\) 中任何一个。设 \(m = \left\lfloor\frac{l_b+r_b}{2}\right\rfloor\) ,容易想到用若干个循环计算出 \(p_m\) 。然后分治计算 \(\mathrm{solve}(l_a, p_m, l_b, {m-1}), \mathrm{solve}(p_m, r_a, m+1, r_b)\) 。是计算复杂度是 \(O((n+m)\log_2(n+m))\)

最后计算一遍逆序对。

[CF1039-D] You Are Given a Tree

\(\Rightarrow \rm luogu\) 链接

考虑对于单个 \(k\) ,可以使用树上贪心求出。同时可以发现随着 \(k\) 增加,答案一定是单调不升的,因此可以使用类似上一题的分治进行求解。

[CF1658-F] Juju and Binary String

\(\Rightarrow \rm luogu\) 链接

将原数组复制一份连到末尾变成 \(S'\),这时候有一个结论,有解当且仅当存在一个 \(S'\) 中的长度为 \(m\) 的子串的 \(\rm cuteness\) 等于原串的 \(\rm cuteness\) 。(有点神奇)

考虑滑动窗口,每向右移动一格,子串(窗口)中 \(\texttt{1}\) 的个数变化只能是 \(\pm 1\) ,假如合法的子串需要的 \(\texttt{1}\) 的个数为 \(g\) ,那么假设存在两个子串,其 \(\texttt{1}\) 的个数分别 \(<g\) 和 \(>g\) ,那么这两个子串之间一定存在一个合法的区间。显然不存在都是 \(<g\) 或者 \(>g\) 的情况。

[CF1270-F] Awesome Substrings

\(\Rightarrow \rm luogu\) 链接

考虑枚举一个整数 \(k\) ,然后求出 \(k(c_r-c_l)=r-l\Leftrightarrow r-kc_r=l-kc_l\) 的区间 \((l,r]\) 个数。

然后根号分治。

对于 \(k\leq \sqrt{n}\) ,这时候直接暴力枚举 \(k\) 统计就行了。

对于 \(k\ge \sqrt{n}\) ,这时候 \(c_r-c_l=\frac{r-l}{k}\leq \sqrt{n}\) ,因此对于每一个合法区间, \(\texttt{1}\) 的个数都不多,这时候枚举 \(l\) ,然后枚举 \(k\) ,可以合法的 \(r\) 的范围,

标签:子串,记录,luogu,texttt,个数,rm,2022.4,shui,Rightarrow
来源: https://www.cnblogs.com/juruohjr/p/16131707.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有