模拟判定就可以了

判定字符串是否相等用hash来判断

QAQ 值得一提的是一开始我交的时候T了

结果我将递归的顺序调整了一下就A了

(并不知道为什么

#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<iostream>
#include<algorithm>
using namespace std; typedef unsigned long long LL;
const int maxn=200010;
const int x=13331;
int n;
char s[maxn];
char p[maxn];
LL xp[maxn],hs[maxn],hp[maxn]; bool cmp(int a,int b,int c,int d){
return hs[a]-hs[b+1]*xp[b-a+1]==hp[c]-hp[d+1]*xp[d-c+1];
}
bool Solve(int a,int b,int c,int d){
if(cmp(a,b,c,d))return true;
if((b-a+1)&1)return false;
int e=(a+b)>>1;
int f=(c+d)>>1;
if(Solve(a,e,f+1,d)&&Solve(e+1,b,c,f))return true;
if(Solve(a,e,c,f)&&Solve(e+1,b,f+1,d))return true;
return false;
} int main(){
scanf("%s",s+1);scanf("%s",p+1);
n=strlen(s+1);
xp[0]=1;
for(int i=1;i<=n;++i)xp[i]=xp[i-1]*x;
hs[n+1]=0;hp[n+1]=0;
for(int i=n;i>=1;--i){
hs[i]=hs[i+1]*x+s[i]-'a';
hp[i]=hp[i+1]*x+p[i]-'a';
}
if(Solve(1,n,1,n))printf("YES\n");
else printf("NO\n");
return 0;
}

  

codeforces #313 div1 B的更多相关文章

  1. codeforces #313 div1 E

    首先我们要注意到一个事情 如果一个灯塔向左覆盖,那么比他小的某个灯塔如果向左覆盖的端点大于当前塔向左覆盖的端点,他一定向右覆盖 对于当前灯塔向右覆盖也是同理 那么我们只需要记录当前覆盖到的端点就可以完 ...

  2. codeforces #313 div1 D

    好神的题目! 首先我们运用pick定理A=S-B/2+1将要求的东西转化掉 之后分离变量,我们变成了求选取凸包面积的期望和求选取凸包在边界上的点的期望 我们先考虑求选取凸包面积的期望 如何计算凸多边形 ...

  3. codeforces #313 div1 C

    同BZOJ 3782 上学路线 QAQ 还比那个简单一点 把坐标(1,1)-(n,m)平移成(0,0)-(n-1,m-1) 设dp[i]表示从(1,1)出发第一次经过障碍且到达第i个障碍的方案数 首先 ...

  4. codeforces #313 div1 A

    捕获一只野生大水题! 首先我们知道边长为L的正三角形含有边长为1的小正三角形为L^2个 那么我们可以通过在六边形的正上,左下,右下补充正三角形使得原图形变成正三角形 然后再将补充的减去即可 #incl ...

  5. codeforces 407 div1 B题(Weird journey)

    codeforces 407 div1 B题(Weird journey) 传送门 题意: 给出一张图,n个点m条路径,一条好的路径定义为只有2条路径经过1次,m-2条路径经过2次,图中存在自环.问满 ...

  6. codeforces 407 div1 A题(Functions again)

    codeforces 407 div1 A题(Functions again) Something happened in Uzhlyandia again... There are riots on ...

  7. Codeforces Round 313(div1)

    A题: 题目大意: 给出内角全为120度的六边形的六条边的边长,求由多少边长为1的等边三角形构成. 解题思路: 将六边形补全为一个大的等边三角形,则大的等边三角形的边长为六边形的相邻三边之和,接着减去 ...

  8. codeforces #305 div1 done

    总算搞定了这一场比赛的题目,感觉收获蛮大 其中A,B,C都能通过自己的思考解决掉 D题思路好神,E题仔细想想也能想出来 以后坚持每两天或者一天做一场CF的div1的全套题目 除非有实在无法做出来的题目 ...

  9. Codeforces #254 div1 B. DZY Loves FFT 暴力乱搞

    B. DZY Loves FFT 题目连接: http://codeforces.com/contest/444/problem/B Description DZY loves Fast Fourie ...

随机推荐

  1. Android Animation学习笔记

    原文地址: http://www.cnblogs.com/feisky/archive/2010/01/11/1644482.html 关于动画的实现,Android提供了Animation,在And ...

  2. 【译】在JavaScript中{}+{}的结果是什么?

    原文链接:What is {} + {} in JavaScript? 最近,Gary Bernhardt在一个名为'Wat'的闪电演讲中提到了一些有趣的JavaScript技巧.当你把一个objec ...

  3. css笔记——杂记

    ####文本框内阴影#### input[type=text], textarea, input[type=email], input[type=url]{ box-shadow: inset 2px ...

  4. Excel常用函数

    1.基本的算数函数 sum() average() 2.三角函数 sin() cos() 3.

  5. XML格式以及相关libxml库学习

    本文参考 XML文件格式语法以及DTD,摘除其中自己认为必要的知识点,在此记录如下. 先给出一个xml的实例文件, <?xml version="1.0" encoding= ...

  6. Windows远程centos6.5

    linux系统:Centos6.5 1.首先确定是不是图形化界面: yum -y groupinstall Desktop "X Window System" chinese-su ...

  7. QT设置窗口屏幕居中

    int main(int argc, char *argv[]){  QApplication ap(argc, argv);  QDesktopWidget *pDesk = QApplicatio ...

  8. Cookie和Seesion的区别

    一.Cookie对象: 1.Cookie是由网络服务器发送出来,存在在浏览器上,它是个存储在浏览器目录中的文本文件.当浏览该cookie对应的站点时,cookie作为http头部文件的一部分在浏览器和 ...

  9. [Linux] Linux学习笔记(5)-文件与目录管理

    1.Linux目录结构为树状结构,最顶层的目录为跟目录"/",其它目录通过挂载可以将它添加到目录树中,通过解除挂载移除它们. 2.绝对路径与相对路径 绝对路径写法:由根目录&quo ...

  10. PHP中session的使用

    1.初始化(使用session前都要使用,一个页面用一个就可以了) session_start(); 2.保存 $_SESSION[$sessionName]=$value; (value可以是dou ...