$\%$ 您 赛 $11$
作者:互联网
\(\text{Date: 7.25}\)
\(\%\) 您 赛 \(11\)
写挂了写挂了写挂了写挂了写挂了写挂了
\(T1\) 忘特判(\(-40pts\)),\(T2\) 爆内存(\(-100pts\)),\(T3\) 写复杂, \(T4\) 欠智商还忘去掉\(clock()\)了。
\(\Huge \tt你已经菜成这样了\)
\(\Huge \tt还颓废呢\)
\(\Huge \tt gun去写题\)
\(T1T2\) 略,单调队列应该是会写的?
\(T3\) 略,前缀和居然不是第一时间想到的,智商欠费
\(Manacher\) 不要再忘了。
inline void manacher() {
t[0] = '!'; t[cnt = 1] = '#';
for(rg int i = 1; i <= n; ++i) {
t[++cnt] = s[i];
t[++cnt] = '#';
}
rg int mid = 0, r = 0;
for(rg int i = 1; i <= cnt; ++i) { // 马拉车
if(i <= r) p[i] = min(r - i + 1, p[(mid << 1) - i]);
while(t[i - p[i]] == t[i + p[i]]) ++p[i];
if(i + p[i] >= r) r = p[i] + i - 1, mid = i;
}
for(rg int i = 1; i <= cnt; ++i) --p[i]; // p[i] - 1 才是以一个回文中心(包括偶数的回文串)能拓展的最长回文串长度
//for(int i = 1; i <= cnt; ++i) printf("p[%d] = %d\n", i, p[i]);
for(rg int i = 1; i <= cnt; ++i)
for(rg int j = 1; j <= p[i]; j += 2) {
//printf("[%d, %d]\n", (i - j + 1) >> 1, (i + j) >> 1);
//update((i - j + 1) >> 1, (i + j) >> 1);
++res[(i - j + 1) >> 1][(i + j) >> 1];
}
//++res[(i - j) >> 1][(i + j) >> 1];
for(rg int i = 1; i <= n; ++i) {
for(rg int j = 1; j <= n; ++j) {
res[i][j] += res[i][j - 1] + res[i - 1][j] - res[i - 1][j - 1];
}
}
}
\(T4\)
\(2xxx\) 年,一种基因修改技术在 \(Y\) 大陆流行;
为了简化问题,我们把基因看做一个长度为 \(N\) 的正整数序列;
人们可以对基因进行多次修改。具体来讲,对于每次修改可以表述为:选择
这个基因序列的一个前缀,然后翻转它们;但是这个技术有很多限制,首先,必
须先翻转长度小的前缀,再翻转长度大的前缀;其次,有一些长度的前缀是无法
被翻转的,这样的前缀一共有 \(M\) 个;
大部分人都认为,字典序越小的基因序列
越优越,越先进,所以它们想知道,在通过这个技术翻转基因序列后,所能得到
的最小字典序的序列是什么。
题解是这样说的:
测试点 \(1-2\),暴力枚举每个位置翻或不翻; \(O(2^N)\)
测试点 \(3-4\),我们现在想求出,对于前 \(i\) 个数,所能产生的最小的字典序
是多少; 我们发现,无论后面的怎么翻,之前的一定是越小越好; 对于相邻两
个能翻的位置 \(i, j\),\((i < j)\)。前 \(j\) 个的最小值要么是前 \(i\) 个的最小值接上 \(i\)
到 \(j\) 这一段;要么是 \(i\) 到 \(j\) 的翻转接上前 \(i\) 个的最小值(同时在 \(i\) 和 \(j\) 翻
转); 每次翻转前判断哪种方式更优,\(O(N)\) 暴力比较;
测试点 \(5-6\),考虑用哈希 + 二分的方式判断优劣程度; 我们现在要维护这
些操作:尾部插入,头部插入,维护一段的哈希值;一个朴素的实现就是线段树;
\(O(N \log^2 N)\)
测试点 \(7-10\),其实根本不需要用数据结构维护;直接用两个队列,记录头
插入和尾插入的数; 维护队列的前缀哈希值和后缀哈希值;用这些一定可以拼
出一段的哈希值;\(O(N \log N)\)
然而并不是很懂。
赛时应该是想到了部分正解的思路的,但是非常地不确定,不敢在思路非常模糊的状态下去搞一个未知的模拟。
主题思路大概想到了,但是就是脑抽。
就是下饭。
还有这个OJ是再也忍不下去了。。。什么lj的OJ。。。
标签:11,前缀,测试点,基因,哈希,序列,翻转 来源: https://www.cnblogs.com/Doge297778/p/16518448.html