「HNCPC2019」一些题
Posted at 19-9-2 19:05, Updated at 19-10-6 17:52
现场打的时候全程端茶送水...
C. Distinct Substrings
Description
给出一个长度为的字符集大小为的串,对于,求往字符串后面新增一个字符后增加了多少本质不同的子串
Solution
[字符串] [Hash]
考虑往后接上颜色时,用减去前面出现过的串
直接找到所有位置,满足,然后求出一个最大的,满足能和匹配
二分哈希即可
D. Modulo Nine
Description
求有多少长度为的序列满足
- 满足条限制:要求
对取模
Solution
[动态规划]
限制即为要求区间内存在至少两个的质因子
表示到第位,最近的两个质因子在的位置的方案数
转移显然,讨论一下后一位填什么
G. 字典序
Description
给定 矩阵,构造长为 的排列使得对矩阵的每一行按其顺序取下标排序后字典序按行数非降,并且排列字典序尽量小
Solution
[贪心]
from zusuyu
自己的理解:
贪心地考虑,一开始就满足在这一位上全合法的列肯定能直接选,且一定是选字典序最小的
在选完这个后,在分界线上的行就“解放”了,限制放宽
如果某一列上所有的不合法的位置都“解放”了的话,那么它就可以选了
用堆维护
H. 有向图
Description
一张个点的图,初始在号点,每次在号点的时候有的概率走到号点,保证
可以发现经过无限次行走后停留在前号点上的概率是,求停留在后号点每个点的概率
Solution
[概率和期望]
把概率转化成期望来理解。。。
显然这里概率就是期望,而只有按期望来理解的话的那个才解释得通
设表示的期望经过步数
高消即可
J. Parity of Tuples (Easy)
Description
给出个元组,记表示有多少个元组满足为奇数
求
Solution
[动态规划]
显然可以对每个元组算答案,然后加起来
把原组看成一个的矩阵,相当于选出一些行向量做异或运算,要求结果为
设表示处理到第个向量,当前运算结果为的方案数
的部分也可以拆到二进制的每一位算贡献,算在里即可