ICode9

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

6月杂题选做

2022-06-21 08:32:05  阅读:127  来源: 互联网

标签:10 le color code 杂题 bigstar 回文


上回说到: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\) 个不合法的点的方案数。

那么直接树形背包转移,然后最后直接统计即可。

code


ARC058E *2473 \(\color{gray}\bigstar\)

题比较长,自己看。

标签:状压dp。

\(X+Y+Z\le 17\),显然状压,设 \(f_{i,S}\) 表示前 \(i\) 个填完,所有后缀集合为 \(S\) 的方案,然后把 \(>17\) 的位扔掉,直接转移即可。

code


打了 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 实现更加简单。

code


cf2017finalE *2817 \(\color{blue}\bigstar\)

有一个长度为 \(n\) 的字符串,有 \(m\) 种操作,每种操作把 \([l_i,r_i]\) 区间种所有字符加一,(z 变成 a),问是否可以把字符串变成回文串。

\(n\le 10^5\)。

标签:并查集。

考虑区间加显然直接差分,这样变成了一个加一,一个减一,目标状态依然是回文。

考虑回文不好搞,因此增加 \([i,n-i+1]\) 这个操作,那么就相当于全部相等。

可以发现连边后连通块和不变,直接判断即可。

code


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\) 会重复统计。

code


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

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

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

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

ICode9版权所有