3月记录
包含口胡题。
1.[ARC171C] Swap on Tree
条件一:边集合相等。
条件二:满足对于每个点连向的边,出现相对顺序都相同的操作序列得出的结果相等。
必要:若点不满足条件,则一定有点被交换到其他子树去了。
充分:
则只需考虑每个点的度数,背包即可。
2.[AGC065C] Avoid Half Sum
https://www.luogu.com.cn/paste/11m0lbjd
3.ARC058E
随便状压一下就好了。
4.ARC058F
考虑背包,记 \(f_{i,j}\) 表示考虑前 \(i\) 个串,取出长为 \(j\) 的最小串。
由于涉及字典序比较,时间复杂度为 \(\mathcal O(nk^2)\)。
字典序比较不同于计算式比较,找到 \(LCP\) 后第一位即可得出结果。
考虑仅保留能转移到 \(f_{n,k}\) 的 \(f_{i,j}\)。
对于 \(f_{i,j1},f_{i,j2}(j1<j2)\),若 \(f_{i,j1}\) 不是 \(f_{i,j2}\) 的前缀,则若前者小于后者,那么前者优于后者,否则后者优于前者。
这样对于 \(f_{i,*}\),能推到答案的一定是 \(f_{i,\max j}\) 的前缀,我们保留这个最长串即可做到空间 \(\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