这题说的是给了k个串算出这k个串的最长公共子序列,这k个串每个串都是由1--n的数字组成的。

将第一串的数字按照顺序重新编号为123...n 然后后面的串按照这个编号重新标号,就转化为下面每个串大最长递增子序列的问题,然后我们对于每个串计算出后面比他大的数然后建一条边(用邻接矩阵存)然后可以判断出从a到b点是否有k-1条这样我们专门挑那些k-1条的走这样保证每个序列中都有这样最后dfs算出最长的那个

#include <iostream>
#include <cstdio>
#include <string.h>
using namespace std;
const int MAX_N = ;
int renum[MAX_N];
int edg[MAX_N][MAX_N],dp[MAX_N];
int rt[][MAX_N],ans,R,n;
bool use[MAX_N];
void dfs(int loc, int len){
ans=max(len,ans);
dp[loc]=len;
for(int i=loc+; i<=n; ++i)
if(edg[loc][i]==R&&dp[i]<len+){
dfs(i,len+);
}
}
int main()
{
int k;
while(scanf("%d%d",&n,&k)==){
for(int i =; i<=n; ++i){
scanf("%d",&rt[][i]);
renum[rt[][i]]=i;
}
R=k-;
for(int i=; i<k; ++i){
rt[i][]=;
for(int j=; j<=n; ++j){
scanf("%d",&rt[i][j]);
rt[i][j]=renum[rt[i][j]];
}
}
memset(edg,,sizeof(edg));
for(int i=; i<k; i++){
for(int j =; j<=n; ++j){
for(int t=j+; t<=n; ++t)
if(rt[i][j]<rt[i][t]) edg[rt[i][j]][rt[i][t]]++;
}
}
ans=;
memset(dp,,sizeof(dp));
dfs(,);
printf("%d\n",ans);
}
return ;
}

cf463d的更多相关文章

  1. [CF463D]Gargari and Permutations

    题目大意:给你$k(2\leqslant k\leqslant5)$个$1\sim n(n\leqslant10^3)$的排列,求它们的最长子序列 题解:将$k$个排列中每个元素的位置记录下来.如果是 ...

  2. CF463D Gargari and Permutations dp

    给定 $n<=10$ 个 $1$~$n$ 的排列,求这些排列的 $LCS$. 考虑两个排列怎么做:以第一个序列为基准,将第二个序列的元素按照该元素在第一个序列中出现位置重新编号. 然后,求一个 ...

随机推荐

  1. 更简单的调试Release版本Optimize code的.NET程序集

    由于JIT的优化在调试Release版本程序集往往没有足够的跟踪信息,比如查看clrstack发现PARAMETERS:= <no data>状态. 在程序运行目录下创建一个[程序集名称] ...

  2. -bash: locate: command not found

    部分版本的linux系统使用locate快速查找某文件路径会报以下错误: -bash: locate: command not found 其原因是没有安装mlocate这个包 安装:yum  -y ...

  3. 解决-Dmaven.multiModuleProjectDirectory system property is not set. Check $M2_HOME environment variabl

    1.添加M2_HOME的环境变量 2.Preference->Java->Installed JREs->Edit 选择一个jdk, 添加  -Dmaven.multiModuleP ...

  4. elk单台环境搭建

    一.简介1.核心组成ELK由Elasticsearch.Logstash和Kibana三部分组件组成:Elasticsearch是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分 ...

  5. [Windows]Window 7 修改系统时区

    注意:编码存储为ANSI tzutil /s "China Standard Time"pause

  6. [工具]Sublime 显示韩文

  7. springMVC去掉静态资源的拦截

    前端控制器的配置 <!-- springmvc的前端控制器 --> <servlet> <servlet-name>springMVC</servlet-na ...

  8. Ubuntu16.04双网卡主备配置

    前几日写了一篇Ubuntu14.04双网卡主备配置,没成想变化总是这么快,今日安装某软件,提示最匹配的ubuntu版本是16.04,作为一个码农能有什么办法,只能不断去适应变化.拥抱变化. 首先16. ...

  9. ubuntu下绝对路径和相对路径的问题

     绝对路径与相对路径 除了需要特别注意的FHS目录配置外,在文件名部分我们也要特别注意.因为根据档名写法的不同,也可将所谓的路径(path)定义为绝对路径(absolute)与相对路径(relativ ...

  10. Gym - 101020H Weekend floyd+next_permutation

    https://vjudge.net/problem/Gym-101020H 题意:正常读取方式给你一个图(双向的),然后给你f个点,让你找一条路从1到n的最短路,要求经过f个点(以任意顺序). 题解 ...