6月杂题选做
作者:互联网
上回说到:2022.5 part 2
关于难度
\(\color{gray}\bigstar\) 可以秒杀的题。
\(\color{green}\bigstar\) 思考一会儿后可以秒的题。
\(\color{blue}\bigstar\) 需要较长时间思考的题。
\(\color{Gold}\bigstar\) 看题解、稍加指点就会做的题。
\(\color{red}\bigstar\) 看题解后需要较长时间消化,甚至现在都没有完全理解的题。
ARC121E *2645 \(\color{green}\bigstar\)
已知一棵 \(n\) 个点的树,求有多少个排列 \(a\),满足对于每个 \(i\),\(a_i\) 不是 \(i\) 的祖先(不包括自己),答案对 \(998244353\) 取模。
\(n\le 2000\)。
标签:树形背包。
其实不是很难的题。
考虑 \(a_i\) 不是祖先比较困难,所以考虑 \(a\) 的逆排列 \(a'\),那么也就是 \(a'_i\) 不能是 \(i\) 的子树中的点(除 \(i\) 外)。
考虑会有很多位置不合法,所以可以直接容斥,设 \(f_{i,j}\) 表示 \(i\) 子树中有 \(j\) 个不合法的点的方案数。
那么直接树形背包转移,然后最后直接统计即可。
ARC058E *2473 \(\color{gray}\bigstar\)
题比较长,自己看。
标签:状压dp。
\(X+Y+Z\le 17\),显然状压,设 \(f_{i,S}\) 表示前 \(i\) 个填完,所有后缀集合为 \(S\) 的方案,然后把 \(>17\) 的位扔掉,直接转移即可。
打了 ABC 254,过了 ABCDEFEx。
开局秒E,然后过了F,G没人过先去Ex,看错题写好久,过了之后看了一下G,发现是阿拉丁题,狗都不写。
ABC254Ex *2499 \(\color{blue}\bigstar\)
有两个集合 \(a,b\),每次操作选择 \(a\) 中一个数乘 \(2\) 或者除以 \(2\) 下取整,问最少操作几次后 \(a=b\)。
\(n\le 10^5,a_i,b_i\le 10^9\)。
标签:字典树,贪心。
考虑操作过程本质上是二进制为删末尾和加 \(0\),那么考虑 \(x\) 变成 \(y\),要么无解,要么次数就是两者长度之和减去 LCP 的两倍。
所以贪心,先放字典树上,然后把字典树一个节点内的进行匹配,然后统计即可,无解就是一个节点内 \(b\) 中数数量大于 \(a\)。
事实上,用 map 实现更加简单。
cf2017finalE *2817 \(\color{blue}\bigstar\)
有一个长度为 \(n\) 的字符串,有 \(m\) 种操作,每种操作把 \([l_i,r_i]\) 区间种所有字符加一,(z 变成 a),问是否可以把字符串变成回文串。
\(n\le 10^5\)。
标签:并查集。
考虑区间加显然直接差分,这样变成了一个加一,一个减一,目标状态依然是回文。
考虑回文不好搞,因此增加 \([i,n-i+1]\) 这个操作,那么就相当于全部相等。
可以发现连边后连通块和不变,直接判断即可。
ARC064F *2949 \(\color{green} \bigstar\)
已知两个数 \(n,k\),把所有长度为 \(n\),值域为 \([1,k]\),的回文串以及它的所有循环移位的结果放入一个集合 \(S\),求集合大小对 \(10^9+7\) 取模的结果。
\(n,k\le 10^9\)。
标签:计数。
先考虑对于一个串对答案的贡献。
考虑如果会重复,那么必然存在一个周期,又因为整体是一个回文串,所以每个周期都是一个回文串。
设 \(s_i\) 表示周期长度为 \(i\) 的回文串个数,这个可以直接容斥。
然后直接统计答案即可,需要注意如果 \(i\) 为偶数需要除以二,因为 \(Arev(A)\) 和 \(rev(A)A\) 会重复统计。
ARC065F *2652 \(\color{Gold} \bigstar\)
有一个长度为 \(n\) 的 01 序列,顺次进行 \(m\) 个操作,每次操作把 \([l_i,r_i]\) 中的元素任意排列,问操作后有多少种可能的序列对 \(10^9+7\) 取模。
\(n,m\le 3000,l_i\le l_{i+1}\)。
标签:dp。
考虑设 \(f_{i,j}\) 表示从左到右确定了第 \(i\) 个了,从 \(i\) 到它可以操作的最右边
标签:10,le,color,code,杂题,bigstar,回文 来源: https://www.cnblogs.com/houzhiyuan/p/16395455.html