CodeForces 559B Equivalent Strings

Portal: http://codeforces.com/problemset/problem/559/B

年轻时第一次cf的D题,当时直接写了个递归结果爆炸

做法大概是递归时候按字典序乱搞一下

然后就nlogn水过了

 1 #include<iostream>
 2 #include<algorithm>
 3 #include<set>
 4 #include<cstdio>
 5 #include<cstdlib>
 6 #include<cmath>
 7 #include<cstring>
 8 using namespace std;
 9 #define FOR(i,j,k) for(int i=j;i<=k;i++)
10 #define FORD(i,j,k) for(int i=j;i>=k;i--)
11 #define LL long long
12 #define SZ(x) int(x.size())
13 string a,b;
14 string cg(string s)
15 {
16     if(SZ(s)%2==1) return s;
17     string aa=s.substr(0,(SZ(s))/2);
18     string bb=s.substr((SZ(s))/2,(SZ(s))/2);
19     aa=cg(aa);
20     bb=cg(bb);
21     if(aa<bb) return aa+bb; else return bb+aa; 
22 }
23 int main()
24 {
25 cin>>a>>b;
26 a=cg(a);
27 b=cg(b);
28 if(a==b) cout<<"YES"; else cout<<"NO";
29 return 0;
30 }
乱搞黑科技

P.S 听说有人直接暴力过了这题 %%%

posted @ 2016-09-05 13:22  MukoiAoi  阅读(384)  评论(0编辑  收藏  举报