bzoj1398 寻找主人
来源:互联网 发布:关于编程的书 编辑:程序博客网 时间:2024/03/29 20:33
Description
给定两个项链的表示,判断他们是否可能是一条项链。
Input
输入文件只有两行,每行一个由0至9组成的字符串,描述一个项链的表示(保证项链的长度是相等的)。
Output
如果两条项链不可能同构,那么输出’No’,否则的话,第一行输出一个’Yes’,第二行输出该项链的字典序最小的表示。 设L = 项链长度, 对于50%的数据L <= 100000; 对于100%的数据L <= 1000000。
找出两条项链的最小表示法。然后比较。
manacher。。。。。
#include<algorithm>#include<iostream>#include<cstring>#include<cstdlib>#include<cstdio>#include<cmath>using namespace std;int zxbsf(char *a){int i = 0,j = 1, k = 0; int n = strlen(a);while(i < n && j < n && k < n){int t = a[(i + k) % n] - a[(j + k) % n];if(!t) k ++;else {if(t > 0) i += k + 1;else j += k + 1;if(i == j) i ++;k = 0;}}return min(i,j);}int main(){char a[1000010],b[1000010];scanf("%s%s",a,b);int x = zxbsf(a);int y = zxbsf(b);int n = strlen(a);for(int i = 0; i < n; i ++)if(a[(x + i) % n] != b[(y + i) % n]){printf("No");return 0;}printf("Yes\n");for(int i = 0; i < n; i ++)printf("%c",a[(x + i) % n]);return 0;}
0 0
- bzoj1398 寻找主人
- 【Vijos1382】【BZOJ1398】寻找主人 Necklace
- [BZOJ1398] Vijos1382寻找主人 Necklace
- 【bzoj1398】Vijos1382寻找主人 Necklace
- bzoj1398: Vijos1382寻找主人 Necklace
- bzoj1398: Vijos1382寻找主人 Necklace
- bzoj1398 Vijos1382寻找主人 Necklace
- 【bzoj1398】【寻找主人】【最小表示法】
- 【bzoj1398】Vijos1382寻找主人 Necklace 最小表示法
- 寻找好主人
- vijos-1382 寻找主人
- hustoj 2766: 寻找主人
- 主人
- BZOJ 1398: Vijos1382寻找主人 Necklace【字符串最小表示
- bzoj 1398: Vijos1382寻找主人 Necklace (后缀自动机)
- BZOJ 1398: Vijos1382寻找主人 Necklace 字符串最小表示法
- BZOJ 1398: Vijos1382寻找主人 Necklace 最小表示法
- [双语阅读]英动物园为二战幸存小象寻找曾经主人
- Codeforces 625D ---- Finals in arithmetic
- git常用命令速查表
- abstract class和interface的使用场景分别是什么?
- Android特效专辑(九)——仿微信雷达搜索好友特效,逻辑清晰实现简单
- A Java RunTime Environment (JRE) or Java Development Kit (JDK) must be available in order to run Ecl
- bzoj1398 寻找主人
- 网络
- KETTLE——(二)数据抽取
- iOS --- 如何隐藏APP的statusBar
- C++ 学习(第一天)
- QT安装——Windows
- iOS之UIImage性能
- C#设计模式03-原型模式
- Cannot open Eclipse Marketplace