2017-10-湖南套题4
2017-10-19 15:28
253 查看
#include <cstring> #include <cstdio> #define swap(a,b) {int c=a;a=b;b=c;} const int N(1000000); char s ; int n,m; int len ,tr [27],tot; int dep ,dad [23]; inline void Ins(int u) { int v=tot; dad[v][0]=u; dep[v]=dep[u]+1; for(int i=1; i<=20; ++i) dad[v][i]=dad[dad[v][i-1]][i-1]; } inline void Build(int k) { int l=strlen(s+1),now=0; for(int x,i=l; i; --i) { x=s[i]-'a'; if(!tr[now][x]) tr[now][x]=++tot, Ins(now); now=tr[now][x]; } len[k]=now; } inline int LCA(int x,int y) { if(dep[x]>dep[y]) swap(x,y); for(int i=20; i>=0; --i) if(dep[dad[y][i]]>=dep[x]) y=dad[y][i]; if(x==y) return x; for(int i=20; i>=0; --i) if(dad[x][i]!=dad[y][i]) x=dad[x][i],y=dad[y][i]; return dad[x][0]; } /* 5 5 zzj pri prime ime owaski 2 3 1 3 5 2 2 2 3 1 actri 2 2 3 4 2 3 2 6 5 */ int Presist() { freopen("biology.in","r",stdin); freopen("biology.out","w",stdout); scanf("%d%d",&n,&m); for(int i=1; i<=n; ++i) scanf("%s",s+1),Build(i); for(int op,t,u,v; m--; ) { scanf("%d",&op); if(op==1) scanf("%s",s+1),Build(++n); else { scanf("%d%d",&t,&u); int lca=len[u]; for(int i=2; i<=t; ++i) { scanf("%d",&v); lca=LCA(lca,len[v]); } printf("%d\n",dep[lca]); } } // for(int i=1; i<=tot; ++i) printf("%d ",dep[i]); return 0; } int Aptal=Presist(); int main(int argc,char**argv){;}AC
相关文章推荐
- 2017-10-湖南套题3
- 2017-10-湖南套题2
- MyEclipse 2017 CI 10 发布(附下载)
- Top 10 Mobile Testing Tools In 2017 for Android & iOS
- 2017 10 07 NOIP2017模拟赛
- 2017/10/12模拟赛总结
- myeclipse-2017-ci-10 安装包+破解工具
- 2017_10_13 Shell&基本数据类型
- 2017 Multi-University Training Contest 10 1010 Schedule HDU 6180 (贪心)
- 启动hive hiveserver2会报警告-Mon Oct 16 10:25:12 CST 2017 WARN: Establishing SSL connection without server
- 2017湖南多校第三场A(1025): Lawn mower
- 2017 - 10 -16 面向对象 多态 抽象类 接口 形参和返回值 链式编程 包 访问修饰符 内部类
- 2017湖南多校第一场-Enterprising Escape
- cn_windows_10_enterprise_version_1703_updated_june_2017_x64_dvd_10720588.iso
- 2017 - 10 -22 集合框架 ArrayList Vector LinkedList 泛型 jdk5新特性
- 阶段性总结(2017 June 10 - 2017 July 10)
- MyEclipse 2017 CI 10 激活破解方法工具(亲测已成功)
- MyEclipse 2017 CI 10安装与激活
- 2017 10 03 小结
- 2017 - 10 -13 java基础