[题解]P5446 [THUPC2018]绿绿和串串(manacher) 考虑对于一个串进行\(f\)操作,就是让他变成一个以最后一个节点为回文中心的回文串. 那么对于某个位置\(p\),假如它是一个合法的位置,那么它一直倍增一直倍增当长度大于这个原串的时候就使得\(T\)出现过一次了. 倍长一次就大于原串了,此时\(p\)是一个回文中心,且\(p\)的回文半径到达了\(|T|\) 倍长两次才大于原串,此时\(S\)倍增一次后的那个点\(p'\)是一个回文中心,且\(p'\)的回文边界到达了右边…
[题解] Luogu P5446 [THUPC2018]绿绿和串串 ·题目大意 定义一个翻转操作\(f(S_n)\),表示对于一个字符串\(S_n\), 有\(f(S)= \{S_1,S_2,...,S_{n-1},S_n,S_{n-1},...S_2,S_1 \}\). 现在给定一个长度为\(n\)的字符串\(S^{'}\)表示原字符串\(S\)经过若干次(可能为0)旋转之后的一个前缀, 求原来字符串可能的长度\(l\). 显然当\(l > n\)时一定可行,所以只需要输出所有的\(l\leq…
题目描述 绿绿和 Yazid 是好朋友.他们在一起做串串游戏. 我们定义翻转的操作:把一个串以最后一个字符作对称轴进行翻转复制.形式化地描述就是,如果他翻转的串为 RRR,那么他会将前 ∣R∣−1个字符倒序排列后,插入到串的最后. 举例而言,串abcd进行翻转操作后,将得到abcdcba:串qw连续进行 2次翻转操作后,将得到qwqwq:串z无论进行多少次翻转操作,都不会被改变. 贪玩的绿绿进行了若干次(可能为 0 次)翻转操作. 淘气的绿绿又展示出了一个非空串 S,并表示 S 是最终的串 R…
正解:$manacher$ 解题报告: 传送门$QwQ$ 考虑这个操作的实质是啥$QwQ$?其实就,变成以最后一个节点为回文中心的回文子串嘛$QwQ$.显然就先跑个马拉车再说呗$QwQ$. 然后接着考虑,最容易考虑到的是操作一次后长度大于等于$|S|$的,就只需这个位置的回文半径已经顶着右边界了. 然后对于要操作多次的,仔细思考下发现,只需要回文半径顶着左边界且操作一次之后的位置可行就行 然后就做完了$QwQ$ #include<bits/stdc++.h> using namespace s…
题目分析: 比较简单,先跑一边manacher,然后对于回文部分可以碰到末尾的一定满足条件,否则向后转移. 代码: #include<bits/stdc++.h> using namespace std; ; ]; ],n; void manacher(){ memset(f,,sizeof(f)); *n-,j=n-;i>=;i-=,j--){ solve[i] = str[j];solve[i-] = '$'; } solve[] = str[]; f[] = ; n = *n-;…
还是很好做的,大致就是manacher,每个位置为中心的最长回文串要是能抵到最右边就合法,要是能抵到最左边,那这个点的是否合法取决于以这个点为中心的最长回文串的右端点是否合法. #include <iostream> #include <cstring> #include <cstdio> #include <vector> using namespace std; int T, n, r[2000005], len; bool iso[1000005];…
THUPC2018看题总结 #6387. 「THUPC2018」绿绿与串串 / String 据说是签到题啊. 首先根据题目的意思,我们发现如果能找到那个最后一次选择的对称轴岂不是美滋滋. 自然地,我们先发掘发掘那个对称轴需要具备哪些性质. 发现如果对原串做\(Manacher\)的话,对称轴的回文半径是一定会延长到结尾的. 又发现如果一个位置的回文半径延长到了结尾那么这个字符一定是一个对称轴. 好,现在我们知道所有对称轴了. 但是如果只输出每个对称轴所在的位置的话会少算那种操作多次才能达到目的…
[题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=3790 [题目大意] 问最少用几个回文串可以构成给出串,重叠部分可以合并 [题解] 我们先用manacher处理出每个位置最长的回文串, 那么题目就转化为求最少的线段来覆盖全区间,那就是经典的dp题了, dp[i]=min(dp[j]+1)(i线段的左端点-1和j线段的右端点有交) 用树状数组优化一下即可. [代码] #include <cstdio> #include <al…
刷了一下,写一下. T1. 天天爱射击 可以这样想. 我们二分一下每一块木板在什么时刻被击碎. 然后直接用主席树维护的话是\(O(nlog^2n)\)的. 会\(T\),而且是一分不给那种... 那么换个想法,既然都用主席树了,还二分啥. 可以直接主席树上查区间排名. 似乎也可以整体二分. 复杂度\(O(nlogn)\) T2. 机场 很神仙的一个网络流. 首先离散时间点. 然后先假设飞机都停到\(B\)区了. 那么一架飞机是否在\(A\)处停,有两种选择. 一种停一种不停. 分别建边,然后费用…
一.关于类选择器的一个问题 CSS代码: .red { color: red; } .green { color: green; } HTML代码: <div class="red"><div class="green"><p>1. 颜色是?</p></div></div> <div class="green"><div class="red&qu…