题意:

求n个串里的LCS,长度相同时按照字典序排序

solution:

断环为链,二进制枚举子序列,压入vector,按照字典序排序

把出现次数为n的,压入第二个vector

输出最长的第二个vector里最长的序列

 #include<bits/stdc++.h>
#define endl '\n'
using namespace std;
bool cmp(string a,string b)
{
return a.size()<b.size();
}
int main() {
// ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
int n;
while(cin >> n) {
string s;
vector<string>a;
if(n == ) {
cin >> s;
int sz= s.size();
vector<string>xx;
s+=s;
// cout << s << endl;
for(int i = ; i < sz;i++) xx.push_back(s.substr(i,sz));//截取起点为i长度为sz的字串
sort(xx.begin(),xx.end());
for(int i = ; i < xx.size(); i++) cout <<xx[i]<<endl;
cout << xx[] << endl;continue;
} for(int i = ; i < n; i++) {
cin >> s;
int sz = s.size();
s += s;
vector<string>b;
for(int j = ; j < sz; j++){//断环为链
for(int k = ; k < ( << sz); k++) {//用枚举子集来表示序列
string t;
for(int p = ; p < sz; p++) {
if(k & ( << p)) {
t += s[j + p];
}
}
//cout << t << endl;
b.push_back(t);
}
//cout << endl;
}
sort(b.begin(),b.end());
b.erase(unique(b.begin(),b.end()),b.end());//每一个串的子序列按照字典序排序并去重
for(int j = ; j < b.size(); j++) {//把每一个串的子序列加入总的字符串里
a.push_back(b[j]);
}
}
sort(a.begin(),a.end());//按照所有串的子序列
// for(int i = 0; i < a.size(); i++) cout << a[i] <<endl;
int ct = , maxx = ;
vector<string>c,d;
for(int i = ; i < a.size(); i++) {
if(a[i] == a[i- ]) ct++;
else ct = ;
if(ct == n) c.push_back(a[i]),maxx=max(maxx,(int)a[i].size());//n个串里的公共子序列
}
// for(int i = 0; i < c.size(); i++) cout << c[i] <<endl;
if(c.size() == ) {
cout << << endl; continue;
}
for(int i = ; i < c.size(); i++) {
if(c[i].size() == maxx){
cout<<c[i]<<endl;break;
}
}
}
return ;
}

字符串暴力枚举子序列求LCS的更多相关文章

  1. POJ 3080 Blue Jeans (字符串处理暴力枚举)

    Blue Jeans  Time Limit: 1000MS        Memory Limit: 65536K Total Submissions: 21078        Accepted: ...

  2. Codeforces Round #410 (Div. 2)(A,字符串,水坑,B,暴力枚举,C,思维题,D,区间贪心)

    A. Mike and palindrome time limit per test:2 seconds memory limit per test:256 megabytes input:stand ...

  3. 【转】最长公共子序列(LCS),求LCS长度和打印输出LCS

    求LCS的长度,Java版本: public static int LCS(int[]a,int[] b) { int [][]c=new int[a.length+1][b.length+1]; f ...

  4. UVA 10635 Prince and Princess—— 求LCS(最长公共子序列)转换成 求LIS(最长递增子序列)

    题目大意:有n*n个方格,王子有一条走法,依次经过m个格子,公主有一种走法,依次经过n个格子(不会重复走),问他们删去一些步数后,重叠步数的最大值. 显然是一个LCS,我一看到就高高兴兴的打了个板子上 ...

  5. 聪明的暴力枚举求abcde/fghij=n

    目录 前言 一.题目 二.暴力初解 三.优化再解(借鉴bitmap) 总结 前言 枚举如何聪明的枚举?那就是优化啦!下面梳理之前做过的一个暴力枚举的题,想了蛮久最后把它优化了感觉还不错,算是比较聪明的 ...

  6. Algorithm --> 最长公共子序列(LCS)

      一.什么是最长公共子序列     什么是最长公共子序列呢?举个简单的例子吧,一个数列S,若分别是两个或多个已知序列的子序列,且是所有符合条件序列中最长的,则S称为已知序列的最长公共子序列. 举例如 ...

  7. 最长公共子序列(LCS)、最长递增子序列(LIS)、最长递增公共子序列(LICS)

    最长公共子序列(LCS) [问题] 求两字符序列的最长公共字符子序列 问题描述:字符序列的子序列是指从给定字符序列中随意地(不一定连续)去掉若干个字符(可能一个也不去掉)后所形成的字符序列.令给定的字 ...

  8. 【转】动态规划之最长公共子序列(LCS)

    [原文链接]最长公共子序列(Longest Common Subsequence,简称 LCS)是一道非常经典的面试题目,因为它的解法是典型的二维动态规划,大部分比较困难的字符串问题都和这个问题一个套 ...

  9. 【线型DP模板】最上上升子序列(LIS),最长公共子序列(LCS),最长公共上升子序列(LCIS)

    BEGIN LIS: 一个数的序列bi,当b1 < b2 < … < bS的时候,我们称这个序列是上升的.对于给定的一个序列(a1, a2, …, aN),我们可以得到一些上升的子序 ...

随机推荐

  1. idea的EasyCode使用

    EasyCode可以自动根据表格生成:entity,dao,service,serviceImpl,controller 使用方法: 一.安装EasyCode插件: File-setting-Plug ...

  2. Navicat for MySQL 设置定时任务(事件)

    1.查询界面输入命令,查看定时任务是否开启,未开始时OFF: show variables like '%event_scheduler%'; 2. 查询界面输入命令,开启定时任务: set glob ...

  3. ARM与x86 CPU架构对比

    CISC(复杂指令集计算机)和RISC(精简指令集计算机)是当前CPU的两种架构.它们的区别在于不同的CPU设计理念和方法.早期的CPU全部是CISC架构,它的设计目的是CISC要用最少的机器语言指令 ...

  4. asp.net使用FileUpload控件上传图片且重命名

    我在根目录下创建了一个Images图片存放文件夹,上传的图片都在这 下面贴代码 if (FileUpload1.HasFile) { string filename = FileUpload1.Fil ...

  5. Windows&Appium&Python自动化测试-Appium安装

    一.安装node.js 官方下载地址为:https://nodejs.org/en/download 傻瓜式安装即可,安装完成后,CMD中运行node -v查看版本号 输入npm 出现如上图信息,表示 ...

  6. 内网监控zabbix

    告警 告警方式:linkedsee 类型:使用脚本linkedsee.sh [root@zabbix-server ~]# cat linkedsee.sh #! /bin/bash SERVICE_ ...

  7. 两种atm取款方式

    1.//函数 密码 账号function User(username, password, account){ this.username = username; this.password = pa ...

  8. git命令行提交流程

    一.顺利提交无冲突情况(diff->add->fetch->pull->commit->push) 1.git  status 查看状态 2. git diff head ...

  9. 使用memocache

    直接cmd下运行 pip3 install python-memcached serializer.py 里的特别应用 如果一个表模型一些字段用到了跨表.可以这样取值 跨表字段 coach_nickn ...

  10. 初入SG-UAP

    初入SG-UAP SpriderMan 关注 2019.06.19 14:10 字数 1130 阅读 10评论 0喜欢 0 初次接触SG-UAP,将自己的见解以文字形式记录下来,希望能对初入的伙伴们有 ...