思路:

暴力枚举。

实现:

  1. #include <iostream>
  2. #include <set>
  3. #include <vector>
  4. using namespace std;
  5.  
  6. void get_subseq(string s, string x, int cur, set<string>& st)
  7. {
  8. if (cur == s.length()) { if (x != "") st.insert(x); return; }
  9. get_subseq(s, x + s[cur], cur + , st);
  10. get_subseq(s, x, cur + , st);
  11. }
  12.  
  13. bool is_subseq(string s, string t)
  14. {
  15. int i = , j = ;
  16. while (i < s.length() && j < t.length())
  17. {
  18. if (t[j] != s[i]) j++;
  19. else i++;
  20. }
  21. return i == s.length();
  22. }
  23.  
  24. bool check(string s, vector<string> v)
  25. {
  26. for (int i = ; i < v.size(); i++)
  27. {
  28. bool flg = false;
  29. int l = v[i].length();
  30. for (int j = ; j < l; j++)
  31. {
  32. string tmp = v[i].substr(j, l - j) + v[i].substr(, j);
  33. if (is_subseq(s, tmp)) { flg = true; break; }
  34. }
  35. if (!flg) return false;
  36. }
  37. return true;
  38. }
  39.  
  40. int main()
  41. {
  42. int n;
  43. string s;
  44. while (cin >> n)
  45. {
  46. vector<string> v;
  47. for (int i = ; i < n; i++) { cin >> s; v.push_back(s); }
  48. set<string> st;
  49. vector<string> buf;
  50. get_subseq(v[], "", , st);
  51. for (auto it: st)
  52. {
  53. int l = it.length();
  54. for (int i = ; i < l; i++)
  55. {
  56. string tmp = it.substr(i, l - i) + it.substr(, i);
  57. buf.push_back(tmp);
  58. }
  59. }
  60. for (auto it: buf) st.insert(it);
  61. int maxn = ; string ans = "zzzzzzzzzz";
  62. for (auto it: st)
  63. {
  64. if (check(it, v) && (it.length() > maxn || (it.length() == maxn && it < ans)))
  65. {
  66. ans = it;
  67. maxn = it.length();
  68. }
  69. }
  70. if (ans == "zzzzzzzzzz") cout << << endl;
  71. else cout << ans << endl;
  72. }
  73. return ;
  74. }

hihocoder1829 Tomb Raider的更多相关文章

  1. Tomb Raider(暴力模拟)

    Tomb Raider https://hihocoder.com/problemset/problem/1829?sid=1394836 时间限制:1000ms 单点时限:1000ms 内存限制:2 ...

  2. ACM/ICPC 2018亚洲区预选赛北京赛站网络赛 B Tomb Raider 【二进制枚举】

    任意门:http://hihocoder.com/problemset/problem/1829 Tomb Raider 时间限制:1000ms 单点时限:1000ms 内存限制:256MB 描述 L ...

  3. ACM-ICPC2018北京网络赛 Tomb Raider(暴力)

    题目2 : Tomb Raider 时间限制:1000ms 单点时限:1000ms 内存限制:256MB 描述 Lara Croft, the fiercely independent daughte ...

  4. hihoCoder-1829 2018亚洲区预选赛北京赛站网络赛 B.Tomb Raider 暴力 字符串

    题面 题意:给你n个串,每个串都可以选择它的一个长度为n的环形子串(比如abcdf的就有abcdf,bcdfa,cdfab,dfabc,fabcd),求这个n个串的这些子串的最长公共子序列(每个串按顺 ...

  5. Tomb Raider

    Lara Croft, the fiercely independent daughter of a missing adventurer, must push herself beyond her ...

  6. ACM/ICPC 2018亚洲区预选赛北京赛站网络赛-B:Tomb Raider(二进制枚举)

    时间限制:1000ms 单点时限:1000ms 内存限制:256MB 描述 Lara Croft, the fiercely independent daughter of a missing adv ...

  7. Tomb Raider HihoCoder - 1829 (二进制枚举+暴力)(The 2018 ACM-ICPC Asia Beijing First Round Online Contest)

    Lara Croft, the fiercely independent daughter of a missing adventurer, must push herself beyond her ...

  8. (转)完全用GNU/Linux工作 by 王珢

    完全用GNU/Linux工作 王珢      (看完这篇博文,非常喜欢王珢的这篇博客,也我坚定了学gnu/linux的决心,并努力去按照国外的计算机思维模式去学习编程提高自己.看完这篇文章令我热血沸腾 ...

  9. Mac使用最多的软件,整理集合

    软件资源 #[PDF移除密码]Cisdem PDFPasswordRemover 3.0.0 [TNT] #Alfred_3.1.1_737 #fwmso2016vlu2.0 #iHosts #Omn ...

随机推荐

  1. C++之友元机制(友元函数和友元类)

    一.为什么引入友元机制? 总的来说就是为了让非成员函数即普通函数或其他类可以访问类的私有成员,这确实破坏了类的封装性和数据的隐蔽性,但为什么要这么做呢? (c++ primer:尽管友元被授予从外部访 ...

  2. 64位windows7下安装python,配置numpy和matplotlib库

    一.Python的安装 1.下载python2.7,下载地址:http://www.python.org/,选择系统相应版本,我选择是的是python2.7.6 . python-2.7.6rc1.a ...

  3. Win10资源管理器中的库文件夹按照修改日期排序

    win7之后添加的库十分的好用,可以将下载,音乐,文档设置在我的电脑(win10叫此电脑)首页,快速进入. 我对文件夹设置了按照时间排序,这样进去就可以直接看到最近下载了什么文件.但是win10用时间 ...

  4. $.ajax数据传输成功却执行失败的回调函数

    这个问题迷惑了我好几天,都快要放弃了,功夫不负有心人,最终成功解决,下面写一下我的解决方法. 我传的数据是json类型的,执行失败的回调函数是因为从后台传过来的数据不是严格的json类型,所以才会不执 ...

  5. 2.3 Hive的数据类型讲解及实际项目中如何使用python脚本对数据进行ETL

    一.hive Data Types https://cwiki. apache. org/confluence/display/HiveLanguageManual+Types Numeric Typ ...

  6. 非侵入式JavaScript(Unobtrusive javaScript)理解

    转载自 https://my.oschina.net/leegq/blog/279750 在Web的早期阶段,也就是在jQuery出现以前,在同一个文件中混杂JavaScript代码和HTML标记是非 ...

  7. visualstudio Team Foundation Server 使用教程

    一.前沿 Team Foundation Server 是我们开发者使用最多的源代码管理工具.由于自己服务器搭建拉取工作慢的缘故,我使用了微软的 TFS.使用非常方便.快捷.免费.且不公开私有的项目. ...

  8. 带着问题看 react-redux 源码实现

    前言 Redux作为通用的状态管理器,可以搭配任意界面框架.所以并搭配react使用的话就要借助redux官方提供的React绑定库react-redux,以高效灵活的在react中使用redux.下 ...

  9. E20190407-hm

    conclude  vt. 推断; 结束,终止; 议定; vi. 终了; 作出决定或达成协议; interjection  n. 叹词,感叹词; definitely  adv. 明确地; 确切地; ...

  10. 201621123016 《Java程序设计》第十四周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结与数据库相关内容. 使用数据库技术改造你的系统 2.1 简述如何使用数据库技术改造你的系统.要建立什么表?截图你的表设计. 把我原来 ...