3月记录
包含口胡题。
1.[ARC171C] Swap on Tree
条件一:边集合相等。
条件二:满足对于每个点连向的边,出现相对顺序都相同的操作序列得出的结果相等。
必要:若点不满足条件,则一定有点被交换到其他子树去了。
充分:
则只需考虑每个点的度数,背包即可。
2.[AGC065C] Avoid Half Sum
https://www.luogu.com.cn/paste/11m0lbjd
3.ARC058E
随便状压一下就好了。
4.ARC058F
考虑背包,记 fi,j 表示考虑前 i 个串,取出长为 j 的最小串。
由于涉及字典序比较,时间复杂度为 O(nk2)。
字典序比较不同于计算式比较,找到 LCP 后第一位即可得出结果。
考虑仅保留能转移到 fn,k 的 fi,j。
对于 fi,j1,fi,j2(j1<j2),若 fi,j1 不是 fi,j2 的前缀,则若前者小于后者,那么前者优于后者,否则后者优于前者。
这样对于 fi,∗,能推到答案的一定是 fi,max 的前缀,我们保留这个最长串即可做到空间 \mathcal O(nk)。
考虑 f_{i,j} 仅由 f_{i-1,j} 和 f_{i-1,j-len} 得出,可以 \mathcal O(\log n) 比较字典序得出大小关系。
时间复杂度 \mathcal O(nk\log k),发现比较字典序的方式类似一个串与另一个串的某个后缀的 LCP,使用 Z 算法,即可做到 \mathcal O(nk)。
5.ARC059F
操作序列相当于开始时可能存在并未删除成功的删除,然后中间存在 m 个没删的字符,相当于零点,然后中间就是卡特兰数。
对于前面的,枚举断点写出转移式后,可以卷积转移。
6.ARC060F
当原串无循环节时,答案为 1。
当原串最小循环节为 1 时,答案为 n。
否则答案为 2。
证明考虑 boarder
理论,将原串的第一位删除后得到的串不存在循环节。
于是枚举断点判断即可。
7.ARC061E
拆点直接做。
8.ARC061F
考虑到一种操作序列可以对应多种牌的方案,但是一种牌只能对应一种操作序列。
考虑枚举操作序列的长度,其中要求一种有 n1 个 1,2,3 的个数满足要求,且最后一个数为 1。
列出转移式子后对递推一个函数即可。
9.ARC062E
枚举上下表面后,即确定了八个角的颜色,哈希统计合法方案即可。
10.ARC155A
考虑到 T 的形式如同:SS'SS'...S',则可转化成 k<2n 的情况。
讨论一下即可。
11.ARC155B
将绝对值拆成 |x-a-b| 和 |a-x-b|,即讨论 a,x 的大小关系。
发现由于 b 非负,所以 x-a 或 a-x 小于 0 的情况绝对不会成为最小值。
所以 set
维护 a+b,a-b 的值,查询时查找一下即可。
12.ARC155C
操作可以执行:
-
只有一个偶数;
-
全是偶数;
若前者不存在,则奇数无法转移。
否则,可以将所有偶数移到前面排序,将奇数排序,偶数只有次数 \ge 3 时才能排序。
由于操作可逆,对 a,b 分别执行以上过程,判断是否相等即可。
13.ARC173A
数位 dp
。
14.ARC173B
若存在一条直线,其上点数 k \ge n-\lfloor\frac{n}{3}\rfloor +1,则答案上界到 k。
若不存在,可归纳证明,答案为 \lfloor\frac{n}{3}\rfloor。
15.ARC173C
对于每个点,找到最左和最右与他大小关系相邻相同的点 L,R,若 L\le l\le r \le R,则必然满足,否则不行,对 L-1,R+1 判断即可。
大小关系用 set
维护连续段即可。
16.ARC173D
首先只需要左括号和右括号相等即可,对这样的不合法括号序列循环移位一定能得到合法括号序列。
考虑是否存在环(非正常),左括号小于或大于后括号。
若存在小于和大于,此时一定可以,跑到它是随便操作一下。
若只有小于或只有大于,则无解,因为答案序列一定由若干环组成。
若不存在小于和大于,即全部等于,由于原图强联通性,一定存在包含某一条边的环,于是可以构造。
17.ARC063E
二分图染色判定奇偶不包含。
换根 dp
处理出每个点的取值范围。
随便取就好了。
18.ARC155D
设当前 gcd
为 G,则已取的数一定是 G 的倍数。
考虑当前可以取剩下的 G 的倍数的其中一个,使得 G 不变,或者使 G 变小。
考虑记录已操作次数,f(G,S) 表示 gcd
为 G,已操作 S 次的必胜必败态,则有效的只有 S\le c_G,c_G 为 G 的倍数个数。
容易枚举后继转移。
考虑优化,考虑使得 G 变小的状态,若存在必败态,则先手走它最右;若全是必败态,则先手唯一的策略是不断取 G 的倍数,将局面留给后手,(最后可能将局面留给后手后自己胜利,跟奇偶性有关)则我们只需记录已操作次数的奇偶性,当所有后继为负时,f_{G,c_G \oplus 1} 为胜。
中途需要处理 t_x 表示是否存在 \gcd(a_j,G)=x,莫反一下即可。
19.ARC063D
问题等价于找到周长最大的一个矩形,使得内部不存在任何点。
考虑到答案至少为 2\times \max(H,W),所欲矩形一定经过 x 的中线或 y 的中线。
在此基础上分治,维护前后缀最小最大值,根据单调性进行双指针后求答案即可。
20.CF1809G
考虑满足条件的序列到 i 时,一定对战的是前缀 max
。
且对于满足条件的一个序列,删去最小值,也一定满足条件。
故值域倒序插入数,若当前数不放第一位,无影响。
否则,与他差值 \le k 的数多了限制:不能放在他之后,于是直接计算这些数的方案数即可。
21.AGC017C
题目等价于值域为 i,有一条长为 cnt_i 的绳子,所有绳子往左倒,恰好覆盖 [1,n],需要操作次数就是未被覆盖数。
单点修改只会改变 \mathcal O(1) 个点值。
22.CF1935F
考虑 |x-y| 最大为 2,且最多只有一条为 2 的。
23.AT_arc174_e
枚举 LCP
后简单计算出分类前面有没有出现过的两类数的出现次数,倒序做一下。
24.P6658 边三连通分量
哈希。
25.QOJ 3047
对其中一棵树淀粉质,另一颗建立虚树,dp
一下即可。
26.Gym 102268D
27.NOI排位赛 #1 伙伴
对边考虑,一条边带来 2 的贡献,二分图匹配一下,但是会有链的情况,有时需要拆开一个环加进去。
28.NOI排位赛 #1 帕鲁
考虑两种策略,一是不放,另一个是使得后面操作提前。
预处理从 i 点开始,从段的开头/结尾开始,往后贪心放的方案。
发现前缀操作结束点只有 \mathcal O(n) 种。
29.NOI排位赛 #1 自由落体(待补)
30.gym102870J
将前缀最大值部分切开考虑。
31.[ NOI --四十连测第二套 ]--T1--多边形
搜索,记录当前某一位是否确定,三进制数。
讨论所有操作,最多产生 2 个分支,且 2 个数减少 2。
32.[ NOI --四十连测第二套 ]--T2--倒水 (待补)
33.[ NOI --四十连测第二套 ]--T3--归并 (待补)
34.[ NOI --四十连测第三套 ]--T1--光晕
这题实在是太妙了。
考虑初始数组和最终数组的对应,是 a\times 2^b \to a +b。
显然取最优秀的 a+b 且 a 必然是奇数,故 a+b=i 的数最多 \lceil \frac{i}{2}\rceil 个。
二分可以得出和。
再证明存在一个前缀满足 a_i=i,且包含所有奇数。
然后就可以递归了,每一层最大奇数都可以简单计算出。
35.[ NOI --四十连测第三套 ]--T2--桃树
对于树剖序列的魔改,太nb了!!!!
36.[ NOI --四十连测第三套 ]--T3--雪白 (待补)
37.[ NOI --四十连测第四套 ]--T1--旋律是半透明的颜色 (待补)
38.[ NOI --四十连测第四套 ]--T2--即便星空和泪水开始转动 (待补)
39.[ NOI --四十连测第四套 ]--T3--我只是想轻轻地爱上这一切 (待补)
40.[ NOI --四十连测第五套 ]--T1--城市
答案跟 y 无关,且四种操作下,只有两个会改变绝对值大小,故对这两种考虑,剩下的插入即可。
需要分而治之。
不越过两条直线的起点到终点方案数的 \mathcal O(n\sqrt n) 做法。
41.[ NOI --四十连测第五套 ]--T2--庆典
有点套路的换跟,子树内虚树上两两 LCA
编号和的和,树问题。
42.[ NOI --四十连测第五套 ]--T3--石头 (待补)
43.CF1946F
扫描线,动态维护 dp
,因为本质不同取值 \log 段。
44.CF1942E
极端条件是每一段均为偶数。
45.CF1942F
操作期间可以下去整,且经过 100 次之后答案增加量不超过 1,于是分块。
or, more simply, we have that
a+b\le a+b+2\sqrt{ab}=(\sqrt a+\sqrt b)^2
\implies\sqrt{a+b}\le\sqrt a+\sqrt b
\implies \sqrt{a+b}-\sqrt b\le\sqrt a.
Then \sqrt{c+\sqrt{b+a}}-\sqrt{c+\sqrt b}\le\sqrt{\sqrt{b+a}-\sqrt b}\le\sqrt{\sqrt a}=\sqrt[4] a.
This extends similarly for more nested radicals. Thus, increasing a_i by x<10^{18}<2^{64} will only affect f(i+6) by at most \sqrt[2^6] x =\sqrt[64] x<2, the desired result.
46.CF1942G
操作跟 1 无关,根据队列的大小解决问题。
计算以 i 结束的方案数,那么等价于具有 5 个 (
的合法括号序列。
简单计算即可。
47.LG U415120 https://www.luogu.com/article/ybti3sqj A
发现其中三段都是连续的,且定下了最大最小值,那么线段树维护最小值个数就行了。
本文来自博客园,作者:蒟蒻orz,转载请注明原文链接:https://www.cnblogs.com/orzz/p/18062744
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 历时 8 年,我冲上开源榜前 8 了!
· 物流快递公司核心技术能力-海量大数据处理技术
· 四大AI编程工具组合测评
· 关于能否用DeepSeek做危险的事情,DeepSeek本身给出了答案
· 如何在 Github 上获得 1000 star?