APIO 2014】的更多相关文章

练习赛,评测的时候好像出了些问题,最后我拿自己机子测的212/300,第二题负责评测的写的SPJ就判了第一行的答案,不知道有没出什么问题. T1.palindrome 题目大意:给定一个长度为N的字符串,从中找出一个回文串使其出现次数*长度最大,求出这个值. 思路:做的时候几乎对回文串一无所知,听我旁边某位大神传授manacher就现场学了下,然后按manacher找回文串的方式搞出了一个奇怪的暴力,最后好像骗了很多分(只T了一个点,WA了3个好像是哪里写挂了),但因为太丑又复杂就不解说了.想知…
题意 https://www.lydsy.com/JudgeOnline/problem.php?id=3676 思路 好像还是回文自动机裸体,但是 \(\text{Manacher}\) +后缀自动机+倍增也可以解决. 首先可以一遍 \(\text{Manacher}\) 得到本质不同的回文串,然后分别求一次出现次数,更新答案.不能发现后缀自动机可以比较轻松的求出一个字串的出现次数,但是需要快速回答.所以需要快速找到一个字串在后缀自动机上的所属节点. 注意到后缀链接连接着一段后缀相等的位置,所…
题面 拆开式子我们发现切割顺序不影响答案,所以可以设计出一个$dp[i][j]$表示到$i$为止切了$j$刀的最大收益之类的,然后做个前缀和就可以转移了. $dp[i][j]=min(dp[i][j],dp[k][j-1]+sum[k]*(sum[i]-sum[k]) )$ 第一维显然还可以滚掉,这样就有了一个$O(n^2k)$的做法 因为跑不满如果再卡卡常大概可以得到50pts的好成绩 开始优化,假如现在在$i$而先不管切了几刀,有两个位置$j$和$k$满足$j<k$且$j$比$k$优,那么有…
题面 初见SAM 洛谷数据太弱了,我SAM写错了居然有90pts=.=??? SAM求一个子串$(l,r)$的出现次数:从右端点对应状态开始在parent树上倍增,当目标节点的$len$大于等于子串长度时就往上跳,最后所在节点的$len$就是该串的出现次数 于是边$manacher$边在SAM上统计当前串的出现次数即可,复杂度$O(n\log n)$,注意边界 #include<cstdio> #include<cstring> #include<algorithm>…
http://uoj.ac/problem/104 此题的重点是答案只与切割的最终形态有关,与切割顺序无关. 设\(f(i,j)\)表示前\(i\)个元素切成\(j\)个能产生的最大贡献. \(f(i,j)=\max\{f(k,j-1)+sum(k+1,i)(sum(1,n)-sum(k+1,i)),k<i\}\),其中\(sum(l,r)=\sum\limits_{i=l}^ra_i,sum_k=\sum\limits_{i=1}^ka_i\) 有决策点\(k\)和\(l\),当\(k<l\…
http://uoj.ac/problem/103 由manacher得:本质不同的回文串只有\(O(n)\)个. 用manacher求出所有本质不同的回文串,对每个本质不同的回文串,在后缀自动机的parent树上倍增求一下它出现了多少次,更新答案. 时间复杂度\(O(n\log n)\). #include<cstdio> #include<cstring> #include<algorithm> using namespace std; typedef long l…
这题可以用回文自动机来做,但是我并没有学,于是用Manacher+SA的做法O(nlogn)水过 首先,看到回文串就能想到用Manacher 同样还是要利用Manacher能不重复不遗漏地枚举每个回文子串的性质 只是不重复不遗漏还不够,我们还要统计出现次数 每个子串一定是一个后缀的前缀,于是可以用后缀数组 用后缀数组求出height数组之后,对于在Manacher过程中枚举到的每个长度为k的回文串,可以在height数组中二分,用O(logn)的时间求出这个子串的出现次数 BZOJ和COGS上有…
[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=3675 [算法] 首先 , 我们发现将一段序列切成若干段所获得的收益与顺序无关 于是我们可以用fi,j表示切i次 , 前j个数的最大收益 令sumi表示ai的前缀和 显然 , fi,j = max{ fi-1,k + sumk * (sumj - sumk) } 斜率优化即可 此题内存限制较紧 , 可以使用滚动数组优化空间复杂度 时间复杂度 : O(NK) [代码] #include…
前言: 在APIO 2018 Day2下午听wuvin讲二分,听了一上午的神仙,现在终于有可以听懂了. 专题: 平均边权最大 题目链接:https://www.questoj.cn/problem/34 题解 by wuvin: 二分平均值 然后每条边减去平均值 变为查找是否存在正环 可以使用SPFA(反着写松弛) 最大闭合权子图变式 题意: 一个N个点M条边的图(不一定连通). 一个子图的优美程度定义为子图中的边数/子图的点数 现在你需要求出最大能得到的优美程度是多少? 题解by wuvin:…
一.预备知识 \(tD/eD\) 问题:状态 t 维,决策 e 维.时间复杂度\(O(n^{e+t})\). 四边形不等式: 称代价函数 w 满足凸四边形不等式,当:\(w(a,c)+w(b,d)\le w(b,c)+w(a,d),\ a < b < c < d\) 如下所示,区间1.2对应的 w 之和 ≤ 3.4之和 \[ \underbrace {\overbrace {a \to \underbrace{b \to c}_3}^1 \to d }_4 \llap{\overbrac…