BZOJ 1398: Vijos1382寻找主人 Necklace【字符串最小表示
来源:互联网 发布:算法视频 编辑:程序博客网 时间:2024/04/29 10:58
第一次写最小表示法,纪念一下233333【虽然clj聚聚说用SAM做也不错虽然大概可能常数大了一点
反正直接求两个字符串的最小表示再check一下就好了
#include<bits/stdc++.h>#define MAXN 1000057using namespace std;int n,n2;char a[MAXN<<1],b[MAXN<<1];char c[MAXN];int calc(char *s){int i,j,k;for(i=0,j=1,k=0;i<n2&&j<n2;k=0){while(s[i+k]==s[j+k]&&k<n2)++k;if(k==n2)break;if(s[i+k]>s[j+k])i+=k+1;elsej+=k+1;if(i==j)++i;}return min(i,j);}int main(){scanf("%s%s",a,b);n=strlen(a);for(int i=0;i<n;++i)a[i+n]=a[i],b[i+n]=b[i];a[n<<1]=b[n<<1]='\0';n=strlen(a);n2=n>>1;int id_a=calc(a),id_b=calc(b);for(int i=id_a,j=id_b;i<id_a+n2&&j<id_b+n2;++i,++j)if(a[i]!=b[j])return puts("No"),0;puts("Yes");for(int i=id_a;i<id_a+n2;++i)putchar(a[i]);return 0;}
0 0
- BZOJ 1398: Vijos1382寻找主人 Necklace【字符串最小表示
- BZOJ 1398: Vijos1382寻找主人 Necklace 字符串最小表示法
- BZOJ 1398: Vijos1382寻找主人 Necklace 最小表示法
- 【bzoj1398】Vijos1382寻找主人 Necklace 最小表示法
- bzoj 1398: Vijos1382寻找主人 Necklace (后缀自动机)
- 【Vijos1382】【BZOJ1398】寻找主人 Necklace
- [BZOJ1398] Vijos1382寻找主人 Necklace
- 【bzoj1398】Vijos1382寻找主人 Necklace
- bzoj1398: Vijos1382寻找主人 Necklace
- bzoj1398: Vijos1382寻找主人 Necklace
- bzoj1398 Vijos1382寻找主人 Necklace
- 【bzoj1398】【寻找主人】【最小表示法】
- bzoj 1398 &&bzoj 2882最小表示法
- bzoj 1398 项链 【最小表示法】
- BZOJ 2176: Strange string【字符串最小表示法
- bzoj 2176: Strange string 字符串最小表示法
- BZOJ 4484 [Jsoi2015] 最小表示
- bzoj 4484 [Jsoi2015]最小表示
- WordPress常用的页面判断
- 关于深圳户口从集体户口迁入朋友家庭户口的相关手续总结
- javascript 定义的时候无参数 调用的时候传参数?
- 项目3(2)
- angularjs2 十
- BZOJ 1398: Vijos1382寻找主人 Necklace【字符串最小表示
- HITS算法--从原理到实现
- ElasticSearch集群节点临时重启
- 【读书笔记《Android游戏编程之从零开始》】17.游戏开发基础(游戏适屏的简述和作用、让游戏主角动起来)
- [干货]总结的真好,Android重点知识点总结,不看你会后悔!
- 搜集整理总结#hibernate中的fetch
- 第二周-项目二——程序的多文件组织
- iOS开发:QQ中未读气泡拖拽消失的实现分析(KittenYang)
- 手把手教会基于Android实现最简单的计算器操作