D. Equivalent Strings
2015-07-23 21:19
435 查看
D. Equivalent Strings
#include <iostream> #include <cstdio> #include <cstring> #include <cmath> #include <algorithm> #include <string> #include <vector> #include <set> #include <map> #include <queue> #include <sstream> using namespace std; typedef __int64 LL; const int INF = 0x4ffffff; const double EXP = 1E-5; const LL mod = 1e9+7; const int MS= 200005; bool equals(string s1,string s2) { int len1 = s1.size(); int len2 = s2.size(); if(s1 == s2) return true; else if(len1 != len2 || (len1&1) ==1 || (len2 &1) ==1) return false; else { // if(equals(s1.substr(0,len1/2),s2.substr(0,len1/2)) && equals(s1.substr(len1/2,len1/2),s2.substr(len1/2,len1/2))) // return true; // 不把这个放后面会超时,因为前面的s1 == s2没有通过。说明相同位置上有字符不同。先交叉比较能够优化。 if(equals(s1.substr(0,len1/2),s2.substr(len1/2,len1/2)) && equals(s1.substr(len1/2,len1/2),s2.substr(0,len1/2))) return true; if(equals(s1.substr(0,len1/2),s2.substr(0,len1/2)) && equals(s1.substr(len1/2,len1/2),s2.substr(len1/2,len1/2))) return true; return false; } } int main() { string s1,s2; cin>>s1>>s2; if(equals(s1,s2)) printf("YES\n"); else printf("NO\n"); return 0; }
相关文章推荐
- hdu 5301Buildings 2015 Multi-University Training Contest 2
- 最长公共子序列(dp) & hdu 1159 Common Subsequence
- 数学 HDOJ 5301 Buildings
- hdu5301(2015多校2)--Buildings(构造)
- 【分享】UIViewController生命周期简单归纳
- Arduino Wire.h 库函数基本操作 IIC
- Frequently used algorithms in Leetcode
- 【Espruino】NO.06 关键是你的仆人(继续)
- Snail—UI学习之自定义键盘及键盘收起(待完善)
- IOS--UI--LessonNetWork
- 04-UIScrollView分页功能实现循环查看图片
- IOS-UITextField-邮箱后缀联想赛
- 每天一个小知识点11(jQuerMobile总结二)
- OC07 -- 迭代器/NSNumber/NSValue/NSRange/NSSet/NSDate 及相互转换.(杂)
- Snail—UI学习之UITextField
- STL 整理(map、set、vector、list、stack、queue、deque、priority_queue)(转)
- 【Android UI】自定义Switch(无滑动效果)
- HDU5288 OO’s Sequence(序列的整除对数计数) 多校赛1最水题
- Dijkstra with priority queue
- Dijkstra with priority queue 分类: ACM TYPE 2015-07-23 20:12 4人阅读 评论(0) 收藏