BZOJ 4480 [JSOI2013] 快乐的jyy】的更多相关文章

思路 两个字符串都插入回文自动机中(每次重置last) 最后统计两个right集合的大小就好了 代码 #include <cstdio> #include <algorithm> #include <cstring> using namespace std; int Nodecnt,cnt[50100][2],trans[50100][26],fail[50100],len[50100],s[2][50100],last,n; long long ans=0; char…
国际惯例的题面:有人说这是回文自动机的板子题,然而我是不会这种东西的.于是,我选择用更一般性的方法去解决这个题,就是那一堆东西了.首先,我们把两个串同时插入一个广义SAM里,拓扑排序维护每个节点的parent树的子树中来自两个串的right集合的大小sizA和sizB.同时倍增求出parent树上每个节点向上2^k层的父亲是哪个节点.显然一个串本质不同的回文串数量是O(n)的(什么你不知道?manacher的复杂度怎么证的?),我们对A串做manacher,在暴力拓展的时候,去后缀自动机上倍增查…
[问题描述] 给定两个字符串A和B,表示JYY的两个朋友的名字.我们用A(i,j)表示A 字符串中从第i个字母到第j个字母所组成的子串.同样的,我们也可以定义B(x,y). JYY发现两个朋友关系的紧密程度,等于同时满足如下条件的四元组(i,j,x,y) 的个数: 1:1<=i<=j<=|A| 2:1<=x<=y<=|B| 3:A(i,j)=B(x,y) 4:A(i,j)是回文串 这里表示字符串A的长度. JYY希望你帮助他计算出这两个朋友之间关系的紧密程度. 建两个串…
题目 这个需要我们瞎\(yy\)一下就能做了 我们先对于第一个串建立\(PAM\) 我们把第二个串丢上去匹配,这里匹配出来的是以每一个位置为结尾且在另一个串里存在的最长回文后缀的长度 对于每一个位置开一个计数器,统计一下这个位置被匹配到了几次 显然匹配完之后把计数器做一个子树和 最后的答案就是回文树上的每一个位置代表的回文串出现的次数乘以当前位置计数器的值,之后求一个和 记得用回文树匹配的时候需要判断到了\(1\)位置时退出 代码 #include<cstdio> #include<cs…
一句话题意:求必须包含某K条边的回路(回到1),使得总权值最小 转化为权值最小的联通的偶点 令F[i]表示联通状态为i的最小权值,(3^n状压)表示不在联通块内/奇点/偶点,连边时先不考虑必选的边的度数和权值 最后加上必须的边(保证必须的边都被选了) 连完这些边以后考虑剩下的一些奇点,两两配对,G[i]表示状态为i的奇点两两配对的代价(2^n状压) #include<cstdio> #include<algorithm> using namespace std; int cnt,n…
#include <bits/stdc++.h> #define Sigma 30 #define MAXN 500010 #define int long long using namespace std ; int n, m, ans ; char s[MAXN], t[MAXN] ; struct PAM{ int rt0, rt1, last, sz, f[MAXN], ch[MAXN][Sigma], fail[MAXN], len[MAXN] ; void Init(){ sz =…
「JSOI2013」侦探jyy 传送门 个人感觉我写的复杂度不够优秀啊,但是好像没有别的办法了... 我们枚举每个点,考虑这个点能不能不发生. 首先我们从这个点开始,在反图上面 \(\text{BFS}\) 只要碰到已经发生的点则这个点必须发生. 然后我们再考虑是不是能满足题目要求的点都发生,那么我们就把所有之前那次 \(\text{BFS}\) 没有访问到的入度为零的点都用来在原图上 \(\text{BFS}\) ,如果还是存在一个点不能被满足则这个点也必须发生. 否则可以不发生. 复杂度好像…
原题传送门 弱智搜索题 我们就枚举每个点,先判断它是否必须发生,如果没有必须发生,开始搜索它的祖先,如果祖先中有必须发生的,那么它就必须发生,如果祖先中没有必须发生的,那么搜索所有入度为0的点(除了它的祖先),搜完之后如果还有没被搜到的必须发生的事件,那么它也必须发生 #include <bits/stdc++.h> #define N 1005 #define M 100005 #define getchar nc using namespace std; inline char nc(){…
4459: [Jsoi2013]丢番图 Time Limit: 10 Sec  Memory Limit: 64 MB Description 丢番图是亚历山大时期埃及著名的数学家.他是最早研究整数系数不定方程的数学家之一.为了纪念他,这些方程一般被称作丢番图方程.最著名的丢番图方程之一是x^N+y^n=z^N.费马提出,对于N>2,x,y,z没有正整数解.这被称为“费马大定理”,它的证明直到最近才被安德鲁·怀尔斯(AndrewWiles)证明.考虑如下的丢番图方程:1/x+1/y=1/n(x,…
4465: [Jsoi2013]游戏中的学问 Time Limit: 10 Sec  Memory Limit: 256 MBSubmit: 121  Solved: 59[Submit][Status][Discuss] Description 大家应该都见过很多人手拉手围着篝火跳舞的场景吧?一般情况下,大家手拉手跳舞总是会围成一个大圈,每个人的左手拉着旁边朋友的右手,右手拉着另一侧朋友的左手.不过,如果每一个人都随机的拉住两个不同人的手,然后再慢慢散开,事情就变得有趣多了——此时大家依旧会形…