又是一道明明很明晰却困了我一个上午的题。完了我刷蓝书的进度要被吊打了
解一 字符串Hash结合二分
预处理出两个字符串的前缀哈希。对于每一个的后缀,设其与的最大匹配长度为。容易发现二者前缀哈希是否相等具有单调性。二分每个后缀的答案,最后统计每种的计数即可。代码实现略。
其实昨晚扫一眼题就想到了这个做法。要不是愣是要研究KMP,也不至于沦落到如此地步(
又是一道明明很明晰却困了我一个上午的题。完了我刷蓝书的进度要被吊打了
预处理出两个字符串的前缀哈希。对于每一个的后缀,设其与的最大匹配长度为。容易发现二者前缀哈希是否相等具有单调性。二分每个后缀的答案,最后统计每种的计数即可。代码实现略。
其实昨晚扫一眼题就想到了这个做法。要不是愣是要研究KMP,也不至于沦落到如此地步(
说来惭愧。从国庆到现在,至少有3个人试图把我讲懂期望,但我还是只明白最基本的定义,根本不会做题。
今天发现一篇入门级别的数学期望讲解,在此转载。
或许是人品不错,最近两天接连刷到三道排列组合相关的题。在此作简单整理。
题意参见原题面。
很自然地想到,对于一个排列,有条的连边。因为排列中正整数恰好出现仅有一次,所以等价于每个点有且仅有一条出边、一条入边的图。容易发现这个图由若干个有向环构成(包括自环——即的情况)。例如排列代表由和两个环组成的图。
是的,又是一道考试时想出正解没有打出来的题目
根据题意,我们很容易想到一个朴素的类区间DP——令表示现在将第件货物划分到第箱中,且作为箱内的最后一件货物,所需最小花费。容易写出转移:,初值有,应求得。
Problem D – Codeforces Round #127 (Div. 1)
多模式串匹配,是不是又是AC自动机啊?
显然,每个文本串中,模式串的排列构成的子序列的逆序对数量只和模式串有关。所以我们可以对模式串建立Trie树,每扫入一个文本串的单词就进行匹配。可以做到,K为文本串总长(虽然单个字符串的长度极小可以)。这样就构建出一个由到构建的数列。
枚举的全排列然后暴搜显然不可行。我们注意到,如果钦定一个数,只要知晓当前的排列中前位分别是哪些数,就可以立刻算出加入排列后新增的逆序对数量。则我们考虑状压DP。 (更多…)