<JZOJ5912>VanUSee
挺魔的
反正我考场上想不到233333333333333
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#define rint register int
using std::sort;
using std::cin;
template <class T>inline void read(T &X)
{
X=;int W=;char ch=;
while(!isdigit(ch))W|=ch=='-',ch=getchar();
while(isdigit(ch))X=(X<<)+(X<<)+(ch^),ch=getchar();
X=W?-X:X;return;
}
int n,m,t,tot1,tot2;
int ou[],next[],ji[],tmp;
char S[],T[];
bool ok1,ok2,ok;
int main()
{
freopen("vanusee.in","r",stdin);
freopen("vanusee.out","w",stdout);
read(t);
while (t--)
{
ok1=ok2=ok=;
cin>>S+;
cin>>T+;
n=strlen(S+),m=strlen(T+);
tot1=tot2=;
for (rint i=,j=;i<=m;i++)
{
while (T[i]!=T[j+]&&j) j=next[j];
if (T[i]==T[j+]) j++;
next[i]=j;
}
for (rint i=,j=;i<=n;i++)
{
while (S[i]!=T[j+]&&j) j=next[j];
if (S[i]==T[j+]) j++;
if (j==m)
{
tmp=n-i+m-i;
if (!((n-m)%)) ou[++tot1]=tmp;
else ji[++tot2]=tmp;
j=next[j];
}
}
if ((n-m)%)
{
sort(ji+,ji+tot2+);
for(rint i=;i<=tot2;i++)
if(ji[i]-ji[i-]==) ou[++tot1]=ji[i]-;
}
for (rint i=;i<=tot1;i++)
{
if (!ou[i]){ok=;break;}
if (ou[i]==) ok1=;
if (ou[i]==-) ok2=;
}
if (ok) {printf("pty\n");continue;}
if (!ok1 || !ok2) printf("cqf\n");
else printf("pty\n");
}
}
<JZOJ5912>VanUSee的更多相关文章
- [JZOJ 5912] [NOIP2018模拟10.18] VanUSee 解题报告 (KMP+博弈)
题目链接: https://jzoj.net/senior/#contest/show/2530/2 题目: 众所周知,cqf童鞋对哲学有着深入的理解和认识,并常常将哲学思想应用在实际生活中,例如锻炼 ...
- [NOIP2018模拟赛10.18]自闭报告
闲扯 这一天,菜鸡RyeCatcher又想起来了被毒瘤题支配的恐惧 今天比较好玩,还是ljy提醒才发现文件夹里有题面...不知道外面的人什么时候才发现 看完了题面,又回到了雅礼啥题也不会写的感觉 T1 ...
随机推荐
- Spring使用Rabbitmq (简单使用)
1.pom.xml jar包引用 <dependencies> <dependency> <groupId>org.springframework</grou ...
- 13)编写一个子类SnakeCtrl来继承基类
1)首先是创建子类SnakeCtrl 2) 添加那个SnakeCtrl子类 3)出来了SnakeCtrl的基本样子 4)简单实现: ①改编那个SnakeCtrl.h中的内容: #pragma ...
- PAT Basic 1017 A除以B (20) [数学问题-⼤整数运算]
题目 本题要求计算A/B,其中A是不超过1000位的正整数,B是1位正整数.你需要输出商数Q和余数R,使得A = B * Q + R成⽴. 输⼊格式: 输⼊在1⾏中依次给出A和B,中间以1空格分隔. ...
- Linux-进程状态和system函数
1.进程的5种状态 (1).就绪态. 这个进程当前所有运行条件就绪,只要得到CPU时间就能直接运行. (2).运行态 就绪态时得到了CPU就进入运行态开始运行. (3).僵尸态 进程已经结束但是父进程 ...
- Codeforces Round #563 (Div. 2) 划水记
网太卡只好做划水选手,只做EF. E 很容易发现第一个数是2k或者是3*2k-1,因为消去因子次数要尽可能多,然后可以直接dp一发转移还剩几个2/3即可,写起来有些麻烦 #include<bit ...
- Python笔记_第一篇_面向过程第一部分_6.循环控制语句(while 和 for)_
承接条件控制语句.条件控制语句像大树一样有很多的之差,那条路径通(也就是表达式判断为True)就会往哪一个树杈去运行,万涓溪水汇成大河.对于常用的程序结构形式,还有一种这篇文章就会讲解,那就是循环控制 ...
- MCMC学习
看了这个文档 结合随机矩阵的知识, 更清楚了一点. https://www.cnblogs.com/xbinworld/p/4266146.html
- 1)PHP基础介绍
1.php基础介绍: Perssonal Home Page ====>PHP 2.应用范围 · web服务器脚本语言 命令行脚本语言 应用程序图形界面 3.PHP运行环境 PHP解释 ...
- 爬虫笔记(十)——学会使用Fiddler
Fiddler是一个常见的抓包分析软件,同时我们可以利用它详细地对HTTP请求进行分析,并模拟对应的HTTP请求. 为什么使用Fiddler软件? 网络爬虫是自动爬取网页的程序,在爬取的过程中必然涉及 ...
- 【Java杂货铺】JVM#虚拟机加载机制
代码编译的结果从本地机器码变为字节码,是储存格式发展的一小步,却是编程语言发展的一大步--<深入理解Java虚拟机> 虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验.转化 ...