hihocoder1829 Tomb Raider
思路:
暴力枚举。
实现:
#include <iostream>
#include <set>
#include <vector>
using namespace std; void get_subseq(string s, string x, int cur, set<string>& st)
{
if (cur == s.length()) { if (x != "") st.insert(x); return; }
get_subseq(s, x + s[cur], cur + , st);
get_subseq(s, x, cur + , st);
} bool is_subseq(string s, string t)
{
int i = , j = ;
while (i < s.length() && j < t.length())
{
if (t[j] != s[i]) j++;
else i++;
}
return i == s.length();
} bool check(string s, vector<string> v)
{
for (int i = ; i < v.size(); i++)
{
bool flg = false;
int l = v[i].length();
for (int j = ; j < l; j++)
{
string tmp = v[i].substr(j, l - j) + v[i].substr(, j);
if (is_subseq(s, tmp)) { flg = true; break; }
}
if (!flg) return false;
}
return true;
} int main()
{
int n;
string s;
while (cin >> n)
{
vector<string> v;
for (int i = ; i < n; i++) { cin >> s; v.push_back(s); }
set<string> st;
vector<string> buf;
get_subseq(v[], "", , st);
for (auto it: st)
{
int l = it.length();
for (int i = ; i < l; i++)
{
string tmp = it.substr(i, l - i) + it.substr(, i);
buf.push_back(tmp);
}
}
for (auto it: buf) st.insert(it);
int maxn = ; string ans = "zzzzzzzzzz";
for (auto it: st)
{
if (check(it, v) && (it.length() > maxn || (it.length() == maxn && it < ans)))
{
ans = it;
maxn = it.length();
}
}
if (ans == "zzzzzzzzzz") cout << << endl;
else cout << ans << endl;
}
return ;
}
hihocoder1829 Tomb Raider的更多相关文章
- Tomb Raider(暴力模拟)
Tomb Raider https://hihocoder.com/problemset/problem/1829?sid=1394836 时间限制:1000ms 单点时限:1000ms 内存限制:2 ...
- ACM/ICPC 2018亚洲区预选赛北京赛站网络赛 B Tomb Raider 【二进制枚举】
任意门:http://hihocoder.com/problemset/problem/1829 Tomb Raider 时间限制:1000ms 单点时限:1000ms 内存限制:256MB 描述 L ...
- ACM-ICPC2018北京网络赛 Tomb Raider(暴力)
题目2 : Tomb Raider 时间限制:1000ms 单点时限:1000ms 内存限制:256MB 描述 Lara Croft, the fiercely independent daughte ...
- hihoCoder-1829 2018亚洲区预选赛北京赛站网络赛 B.Tomb Raider 暴力 字符串
题面 题意:给你n个串,每个串都可以选择它的一个长度为n的环形子串(比如abcdf的就有abcdf,bcdfa,cdfab,dfabc,fabcd),求这个n个串的这些子串的最长公共子序列(每个串按顺 ...
- Tomb Raider
Lara Croft, the fiercely independent daughter of a missing adventurer, must push herself beyond her ...
- ACM/ICPC 2018亚洲区预选赛北京赛站网络赛-B:Tomb Raider(二进制枚举)
时间限制:1000ms 单点时限:1000ms 内存限制:256MB 描述 Lara Croft, the fiercely independent daughter of a missing adv ...
- 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 ...
- (转)完全用GNU/Linux工作 by 王珢
完全用GNU/Linux工作 王珢 (看完这篇博文,非常喜欢王珢的这篇博客,也我坚定了学gnu/linux的决心,并努力去按照国外的计算机思维模式去学习编程提高自己.看完这篇文章令我热血沸腾 ...
- Mac使用最多的软件,整理集合
软件资源 #[PDF移除密码]Cisdem PDFPasswordRemover 3.0.0 [TNT] #Alfred_3.1.1_737 #fwmso2016vlu2.0 #iHosts #Omn ...
随机推荐
- C++之虚函数与虚继承详解
准备工作 1.VS2012使用命令行选项查看对象的内存布局 微软的Visual Studio提供给用户显示C++对象在内存中的布局的选项:/d1reportSingleClassLayout.使用方法 ...
- Mysql错误: ERROR 1205: Lock wait timeout exceeded; try restarting transaction
MySQL:innodb的事务锁,一个线程占用着,简单做法是:执行mysql命令: show full processlist; 然后找出查询语句的系统id:kill掉被锁住的线程id:kill 12 ...
- Visual Studio 2013 Update 1
Visual Studio 2013 Update 1 VS2013.1.iso 共 245 MB http://download.microsoft.com/download/8/2/6/826E2 ...
- g2o使用bug总结
g2o进行3d2d优化的时候,设置优化图的边时,注意setVertex()中顶点的顺序. void setVertex(size_t i, Vertex* v) { assert(i < _ve ...
- 【Data Structure & Algorithm】求1+2+…+n
求1+2+-+n 题目:求1+2+-+n,要求不能使用乘除法.for.while.if.else.switch.case等关键字以及条件判断语句(A ? B : C). 分析:此题没多少实际意义,因为 ...
- Flutter实战视频-移动电商-33.列表页_子类和商品列表交互效果
33.列表页_子类和商品列表交互效果 主要实现点击小类下面的列表跟着切换 获取右侧下面的列表信息,即要传递大类的id也要传递小类的,所以需要把左侧的大类的id也要Provide化 可以看下网站上的接口 ...
- 3-2if条件结构
不同条件做不同的操作.例如满100就减去20 条件结构 package com.imooc.operator; public class ConditionDemo1 { public static ...
- Java简单的数组用法尝试,和C语言很不一样
public class Main { static int ARRY_LONGTH=100; static int[] getRandomArr(int n){ int[] randomArr; r ...
- FileWriter 写文件
FileWriter fw = new FileWriter("C://Users//pc//Desktop//aaa.txt",true); fw.write("201 ...
- FlashkUI v1.33 发布(提供移动设备支持)
v1.33 Beta更新内容:增加对移动设备的支持,新增自定义双渲染器双层树组件.List增加按数据子项排序功能. <ignore_js_op> 介绍: Flex已经不作为Adobe官方支 ...