[CTSC 2012]熟悉的文章】的更多相关文章

二分+单调队列优化dp+后缀自动机 //CTSC2012 熟悉的文章 #include <bits/stdc++.h> using namespace std; const int maxn = 1e7; #define ll long long char s[maxn]; struct node { int fa; int v; int ch[2]; }t[maxn]; int n,m; int siz = 1; int rt = 1; int lst = 1; inline void ex…
题目描述 阿米巴是小强的好朋友. 在小强眼中,阿米巴是一个作文成绩很高的文艺青年.为了获取考试作文的真谛,小强向阿米巴求教.阿米巴给小强展示了几篇作文,小强觉得这些文章怎么看怎么觉得熟悉,仿佛是某些范文拼拼凑凑而成的.小强不禁向阿米巴投去了疑惑的眼光,却发现阿米巴露出了一个狡黠的微笑. 为了有说服力地向阿米巴展示阿米巴的作文是多么让人觉得“眼熟”,小强想出了一个评定作文 “熟悉程度”的量化指标:L 0 .小强首先将作文转化成一个 01 串.之后,小强搜集了各路名家的文章,同样分别转化成 01 串…
题目 好题啊 \(SAM\)+单调队列优化\(dp\) 首先这个\(L\)满足单调性真是非常显然我们可以直接二分 二分之后套一个\(dp\)就好了 设\(dp[i]\)表示到达\(i\)位置熟悉的文章的最大长度 有一个非常显然的\(dp\)方程 \[dp_i=max\{dp_j+i-j\}\ (i-j>=mid)\] 同时\([j+1,i]\)这个子串也得是模式串里的一个子串 对于上面那个\(dp\)方程,我们把\(i\)提出来,用单调队列维护一下\(dp_j-j\)的最大值就好了 下面这个限制…
题目 P4022 [CTSC2012]熟悉的文章 题目大意:多个文本串,多个匹配串,我们求\(L\),\(L\)指(匹配串中\(≥L\)长度的子串出现在文本串才为"熟悉",使得匹配串整个近似"熟悉")的最大值 近似"熟悉":将匹配串分割,所有串总"熟悉"长度有\(90\%\)以上 做法 首先明确一点,\(L_1<L_2\),则\(L_1\)的熟悉程度\(≥L_2\)的熟悉程度 比如文本串\('adc'\),匹配串\('a…
bzoj luogu 题目描述 阿米巴是小强的好朋友. 在小强眼中,阿米巴是一个作文成绩很高的文艺青年.为了获取考试作文的真谛,小强向阿米巴求教.阿米巴给小强展示了几篇作文,小强觉得这些文章怎么看怎么觉得熟悉,仿佛是某些范文拼拼凑凑而成的.小强不禁向阿米巴投去了疑惑的眼光,却发现阿米巴露出了一个狡黠的微笑. 为了有说服力地向阿米巴展示阿米巴的作文是多么让人觉得"眼熟",小强想出了一个评定作文 "熟悉程度"的量化指标\(L_0\).小强首先将作文转化成一个01串.之后…
纯粹针对刚刚解封开包的新新手,老鸟们请自觉绕行,否则浪费你的时间你非要逼我做谋杀犯可不光我的事你还没地方说理去.如果你正好是个崭新的新手,就耐心的花点时间看看吧,至少大概看看,不要在一个陌生又黑暗的到处碰壁,或张皇四顾,像个没头的苍蝇.现在耐心听我老人家絮絮叨叨没个完的,这点时间绝对值!续_______________________________________________________________________________________用linux,就一定要用linux的…
真是一道好题喵~ 果然自动机什么的就是要和 dp 搞基才是王道有木有! A:连 CTSC 都叫我们搞基,果然身为一个程序猿,加入 FFF 团是我此生最明智的选择.妹子什么闪边去,大家一起来搞基吧! Q:教练你是什么时候产生了 dp 和自动机是同性的错觉~ 教练你又是什么时候产生了你还有个不入团的选择 ( 妹 子 )这样的错觉~ A:显而易见的,我们…… Q:教练不要转移话题啊! A:显而易见的,我们先搞一个后缀自动机…… Q:等等,教练,多串的自动机要怎么写? A:把几个串并在一起不就好了? Q…
Problem bzoj 题目大意:给定多个标准串和一个文本串,全部为01串,如果一个串长度不少于\(L\)且是任意一个标准串的子串,那么它是"熟悉"的.对于文本串\(A\),把\(A\)分割成若干段子串,其中"熟悉"的子串的长度总和不少于\(A\)总长度的\(90\%\),那么该\(L\)是可行的.求可行的\(L\)最大值 Solution 前置技能:二分答案.SAM.Dp.单调队列 字符串长在L上下对答案贡献是断崖式的,按套路二分L 再根据对序列分段问题的直觉可…
传送门 首先很容易想到对于所有的模式串建出广义后缀自动机,之后对于我们每一个要检查的文本串,先在SAM上跑,计算出来每一个位置能匹配到的最远的位置是多少.(就是当前点减去匹配长度) 之后--考虑DP--一开始我的状态设错了,设成了当前位置的最大的L的值,这样我就不知道怎么转移了-- 于是换一个思路.考虑到其实我们可以判定L是否成立,于是改为二分答案,那么这次我们就用\(dp[i]\)表示到当前串第i位,已经被匹配为"熟悉"的总字符串长度.这样到最后只要判断一下是否大于90%即可.那么我…
传送门 先将所有模板串扔进广义SAM.发现作文的\(L0\)具有单调性,即\(L0\)更小不会影响答案,所以二分答案. 假设当前二分的值为\(mid\),将当前的作文放到广义SAM上匹配. 设对于第\(1-i\)个字符来说,最少的失配字符数为\(dp_i\),那么\(dp_i = dp_{i-1} + 1\),且如果当前匹配长度\(len \geq mid\),还有转移\(dp_i = \min\limits_{j=i-len}^{i-mid} dp_j\).发现在\(i\)增大的过程中\(i-…