bzoj 3926 [Zjoi2015]诸神眷顾的幻想乡
3926: [Zjoi2015]诸神眷顾的幻想乡
Time Limit: 10 Sec Memory Limit: 512 MB
Submit: 1381 Solved: 811
[ Submit][ Status][ Discuss]
Description
幽香是全幻想乡里最受人欢迎的萌妹子,这天,是幽香的2600岁生日,无数幽香的粉丝到了幽香家门前的太阳花田上来为幽香庆祝生日。
Input
第一行两个正整数n,c。表示空地数量和颜色数量。
Output
一行,输出一个整数,表示答案。
Sample Input
0 2 1 2 1 0 0
1 2
3 4
3 5
4 6
5 7
2 5
Sample Output
HINT
对于所有数据,1<=n<=100000, 1<=c<=10。
Source
【分析】
摔。为什么大家写的广义后缀自动机都不一样啊QAQ
【代码】
//bzoj 诸神眷顾的幻想乡
#include<iostream>
#include<cstring>
#include<cstdio>
#define ll long long
#define M(a) memset(a,0,sizeof a)
#define fo(i,j,k) for(i=j;i<=k;i++)
using namespace std;
const int mxn=4000005;
ll ans;
int n,m,len,tot,cnt,root;
int head[mxn],du[mxn],s[mxn],step[mxn],pre[mxn],son[mxn][10];
struct edge {int to,next;} f[mxn];
inline int read()
{int x=0,f=1;char ch=getchar();while(ch<'0'||ch>'9') {if(ch=='-') f=-1;ch=getchar();}while(ch>='0'&&ch<='9') x=(x<<1)+(x<<3)+ch-'0',ch=getchar();return x*f;
}
inline void add(int u,int v)
{f[++cnt].to=v,f[cnt].next=head[u],head[u]=cnt;
}
inline int sam(int p,int c)
{int np=(++tot);step[np]=step[p]+1;while(p && !son[p][c])son[p][c]=np,p=pre[p];if(!p) {pre[np]=root;return np;}int q=son[p][c];if(step[q]==step[p]+1) pre[np]=q;else{int nq;step[nq=(++tot)]=step[p]+1;memcpy(son[nq],son[q],sizeof son[q]);pre[nq]=pre[q];pre[np]=pre[q]=nq;while(p && son[p][c]==q)son[p][c]=nq,p=pre[p];}return np;
}
inline void dfs(int u,int fa,int p)
{p=sam(p,s[u]);for(int i=head[u];i;i=f[i].next){int v=f[i].to;if(v!=fa) dfs(v,u,p);}
}
int main()
{int i,j,u,v;n=read(),m=read();fo(i,1,n) s[i]=read();fo(i,2,n){u=read(),v=read();add(u,v),add(v,u);du[u]++,du[v]++;}tot=root=1;fo(i,1,n) if(du[i]==1) dfs(i,0,1);fo(i,2,tot) ans+=step[i]-step[pre[i]];printf("%lld\n",ans);return 0;
}
bzoj 3926 [Zjoi2015]诸神眷顾的幻想乡相关推荐
- bzoj 3926: [Zjoi2015]诸神眷顾的幻想乡(广义后缀自动机)
3926: [Zjoi2015]诸神眷顾的幻想乡 Time Limit: 10 Sec Memory Limit: 512 MB Submit: 1009 Solved: 596 [ Subm ...
- 【刷题】BZOJ 3926 [Zjoi2015]诸神眷顾的幻想乡
Description 幽香是全幻想乡里最受人欢迎的萌妹子,这天,是幽香的2600岁生日,无数幽香的粉丝到了幽香家门前的太阳花田上来为幽香庆祝生日. 粉丝们非常热情,自发组织表演了一系列节目给幽香看. ...
- BZOJ 3926: [Zjoi2015]诸神眷顾的幻想乡
这道题首先要读明白题,就是说叶子节点不超过20个,那么我们就可以以每一个叶子节点为根建一个广义后缀自动机,这样就一定能表示出来所有的子串,然后统计一下答案就可以啦. (广义后缀自动机就是把好多串放到一 ...
- [Zjoi2015]诸神眷顾的幻想乡
[Zjoi2015]诸神眷顾的幻想乡 Time Limit: 10 Sec Memory Limit: 512 MB Submit: 1537 Solved: 892 Description 幽香 ...
- 【BZOJ3926】[Zjoi2015]诸神眷顾的幻想乡 广义后缀自动机
[BZOJ3926][Zjoi2015]诸神眷顾的幻想乡 Description 幽香是全幻想乡里最受人欢迎的萌妹子,这天,是幽香的2600岁生日,无数幽香的粉丝到了幽香家门前的太阳花田上来为幽香庆祝 ...
- [ZJOI2015] 诸神眷顾的幻想乡
P3256[ZJOI2015 Day1]诸神眷顾的幻想乡 时间限制 : 20000 MS 空间限制 : 524288 KB 问题描述 幽香是全幻想乡里最受人欢迎的萌妹子,这天,是幽香的2600岁生 ...
- [bzoj3926][Zjoi2015]诸神眷顾的幻想乡
来自FallDream的博客,未经允许, 请勿转载,谢谢. 幽香是全幻想乡里最受人欢迎的萌妹子,这天,是幽香的2600岁生日,无数幽香的粉丝到了幽香家门前的太阳花田上来为幽香庆祝生日. 粉丝们非常热情 ...
- [洛谷P3346][ZJOI2015]诸神眷顾的幻想乡
题目大意:给你一棵$n$个点的树,最多有$20$个叶子节点,问共有几个不同的子串 题解:广义$SAM$,对每个叶子节点深搜一次,每个节点的$lst$设为这个节点当时的父亲,这样就可以时建出来的$SAM ...
- Luogu P3346 [ZJOI2015]诸神眷顾的幻想乡 广义SAM 后缀自动机
题目链接 \(Click\) \(Here\) 真的是好题啊-不过在说做法之前先强调几个自己总是掉的坑点. 更新节点永远记不住往上跳\(p = fa[p]\) 新建节点永远记不住\(len[y] = ...
最新文章
- 清华计算机学院新成立,清华AI更进一步:清华大学成立人工智能国际治理研究院...
- GO语言编程基础-复合类型结构体
- WCF服务重构实录(上)
- 屏幕截图在网页设计中应用的30个优秀案例
- 问答中心html,html
- C语言中compile time assert的实现
- 理解交通行业规律 用持续做“重”来重新定义共享出行
- 介绍一些好用的ArcToolbox工具(默认ArcGIS没有)
- dialog能提交数据吗_你的数据库,能撑起多少并发,有数吗?
- javascript 嵌入python_通过Python将区块链数据嵌入Javascript,这是正确的方法吗?
- NET 下数据库图片的存入与读取
- php yaf.dll,windows下配置nginx+php+yaf的环境
- win下hadoop配置环境后cmd中报错
- RSA系列第2篇:RSA 加密解密
- 工程项目成本管控,不知从何下手?
- 游戏史上80重要创新(原资料来自17173)
- Machine Learning系列--L0、L1、L2范数
- 在线API文档、技术文档工具ShowDoc
- ![CDATA[]]和转义字符
- 1065 浙江中医药大学ACM OJ