bzoj4480: [Jsoi2013]快乐的jyy
【问题描述】
#include<bits/stdc++.h>
typedef long long i64;
const int N=1e5+;
char s1[],s2[];
int nx[N][],fa[N],l[N],t[N][],pv=,ptr=;
int gf(int w,char*s,int i){
while(s[i]!=s[i--l[w]])w=fa[w];
return w;
}
void ins(char*s,int x){
int c=s[x]-'A',p=gf(pv,s,x);
if(!nx[p][c]){
int np=nx[p][c]=++ptr;
l[np]=l[p]+;
fa[np]=p==?:gf(fa[p],s,x)[nx][c];
}
pv=nx[p][c];
++t[pv][s==s2];
}
int main(){
l[]=-;
fa[]=fa[]=;
scanf("%s%s",s1+,s2+);
s1[]=s2[]=-;
for(int i=;s1[i];++i)ins(s1,i);
pv=;
for(int i=;s2[i];++i)ins(s2,i);
i64 ans=;
for(int w=ptr;w>;--w){
int f=fa[w];
for(int d=;d<;++d)t[f][d]+=t[w][d];
ans+=i64(t[w][])*t[w][];
}
printf("%llu\n",ans);
return ;
}
bzoj4480: [Jsoi2013]快乐的jyy的更多相关文章
- Bzoj4480: [Jsoi2013]快乐的jyy 广义后缀自动机 倍增 哈希 manacher
国际惯例的题面:有人说这是回文自动机的板子题,然而我是不会这种东西的.于是,我选择用更一般性的方法去解决这个题,就是那一堆东西了.首先,我们把两个串同时插入一个广义SAM里,拓扑排序维护每个节点的pa ...
- BZOJ 4480 [JSOI2013] 快乐的jyy
思路 两个字符串都插入回文自动机中(每次重置last) 最后统计两个right集合的大小就好了 代码 #include <cstdio> #include <algorithm> ...
- [Jsoi2013]快乐的jyy
题目 这个需要我们瞎\(yy\)一下就能做了 我们先对于第一个串建立\(PAM\) 我们把第二个串丢上去匹配,这里匹配出来的是以每一个位置为结尾且在另一个串里存在的最长回文后缀的长度 对于每一个位置开 ...
- [JSOI2013] 快乐的 JYY - 回文自动机,DFS
#include <bits/stdc++.h> #define Sigma 30 #define MAXN 500010 #define int long long using name ...
- 「JSOI2013」侦探jyy
「JSOI2013」侦探jyy 传送门 个人感觉我写的复杂度不够优秀啊,但是好像没有别的办法了... 我们枚举每个点,考虑这个点能不能不发生. 首先我们从这个点开始,在反图上面 \(\text{BFS ...
- BZOJ4479 [JSOI2013] 吃货jyy 解题报告(三进制状态压缩+欧拉回路)
题目链接:https://www.lydsy.com/JudgeOnline/problem.php?id=4479 Description [故事背景]作为JSOI的著名吃货,JYY的理想之一就是吃 ...
- BZOJ4479 : [Jsoi2013]吃货jyy
若$k\leq 15$,那么可以设$d[i][S]$表示经过了$S$集合的边,现在位于$i$点的最短路. 可以用Dijkstra算法在$O(n^22^k)$时间内求出. 否则若$k>15$,那么 ...
- BZOJ 4479: [Jsoi2013]吃货jyy
一句话题意:求必须包含某K条边的回路(回到1),使得总权值最小 转化为权值最小的联通的偶点 令F[i]表示联通状态为i的最小权值,(3^n状压)表示不在联通块内/奇点/偶点,连边时先不考虑必选的边的度 ...
- [暑假的bzoj刷水记录]
(这篇我就不信有网站来扣) 这个暑假打算刷刷题啥的 但是写博客好累啊 堆一起算了 隔一段更新一下. 7月27号之前刷的的就不写了 , 写的累 代码不贴了,可以找我要啊.. 2017.8.27upd ...
随机推荐
- s21day04 python笔记
s21day04 python笔记 一.上周知识回顾及补充 回顾 补充 编译型语言和解释性语言 编译型:代码写完后,编译器将其变成成另外一个文件,然后交给计算机执行 常见的编译型语言:C,C++,Ja ...
- C++学习(四)(C语言部分)之 二进制
二进制学习时的笔记(其实也没什么用,留着给自己看的) 二进制简介只有 0 1 优点:1.二进制状态简单2.可靠性.稳定性高3.运算规则简单,简化设计4.通用性强 二进制计算正数二进制十进制转二进制(除 ...
- CH4901 关押罪犯
题意 4901 关押罪犯 0x49「数据结构进阶」练习 描述 S 城现有两座监狱,一共关押着N 名罪犯,编号分别为1~N.他们之间的关系自然也极不和谐.很多罪犯之间甚至积怨已久,如果客观条件具备则随时 ...
- 如何安装Visio
- 火狐浏览器firebug
1. 近日,Firebug团队在官网贴出了停止继续开发.更新维护Firebug的通知,邀请大家使用Firefox内置工具DevTools. 来自官网截图 Firebug是Firefox旗下的一款扩 ...
- C# 线程:定时器的使用
转载请注明出处:http://www.cnblogs.com/KeenLeung/p/3911556.html Timer类:设置一个定时器,定时执行用户指定的函数. 定时器启动后,系统将自动建立一个 ...
- [转]JDK动态代理
代理模式 代理模式是常用的java设计模式,他的特征是代理类与委托类有同样的接口,代理类主要负责为委托类预处理消息.过滤消息.把消息转发给委托类,以及事后处理消息等.代理类与委托类之间 ...
- oracle 之 CLUSTER_INTERCONNECTS is not set to the recommended value
问题:Database parameter CLUSTER_INTERCONNECTS is not set to the recommended value 在Oracle实际应用程序集群环境中可以 ...
- 高级openg 混合,一个完整程序
1.当片段着色器处理完一个片段之后,模板测试(stencil test)会开始执行,和深度测试一样,它也可能会丢弃片段,接下来,被保留的片段会进入深度测试2.每个窗口库都需要为你配置一个模板缓冲,但是 ...
- java 连接 hiveserver2 例子
启动了 hiveserver2 以后才能使用 程序连接 .目前的 使用的 是 server2 版本.和以前的版本驱动包名不同: package hadoop; import java.sql.Co ...