题目

参考网上的代码的、、、

//要找到所有序列中的最长的公共子序列,
//定义状态dp[i]为在第一个序列中前i个数字中的最长公共子序列的长度,
//状态转移方程为dp[i]=max(dp[i],dp[j]+1); j<i //先预处理出两个数在所有序列中的位置关系,
//例如两个数a和b,只要在任意一个序列中a在b的后面,则记after[a][b]=1。 //在递推的时候如果!after[a][b],则进行状态转移。 #include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std ; int a[][];
int after[][];
int dp[];
int main () {
int n,k;
scanf("%d%d",&n,&k);
int ii=;
for(int i=;i<k;i++)
{
for(int j=;j<n;j++)
{
scanf("%d",&a[i][j]);
}
}
memset(after,,sizeof(after));
memset(dp,,sizeof(dp));
for(int i=;i<k;i++)
{
for(int j=;j<n;j++)
{
for(int k=j+;k<n;k++)
{
after[a[i][k]][a[i][j]]=; //存在 k在j后面
}
}
} int ans=; //直接对1~n进行状态转移不可以
//要根据第一行来dp
for(int i=;i<n;i++)
{
dp[i]=;
for(int j=;j<i;j++)
{
if(after[a[][j]][a[][i]]==)dp[i]=max(dp[i],dp[j]+);
}
ans=max(dp[i],ans);
}
printf("%d\n",ans);
return ;
}

最新文章

  1. css定位
  2. Android插件化框架研究-DroidPlugin
  3. TF-IDF提取行业关键词
  4. C#命名规则和编码规范
  5. 将已有项目提交到github/从github上pull到本地
  6. MVC @Html.DropDownList()绑定值
  7. JAVA while循环,do-while循环,for循环
  8. Markdown 学习资源
  9. C++中关于指针初始化和使用NULL的理解
  10. SQL:42601
  11. sunJCE or ibmJce,was服务器下使用des的注意点
  12. Sass与Compress实战:第八章
  13. Unity3d场景漫游---iTween实现
  14. 英文单词断行问题:CSS中word-break、word-wrap以及hyphens的兼容性和区别
  15. JXLS 2.4.0系列教程(五)——更进一步的应用和页面边距bug修复
  16. C#抽象类应用实例
  17. 【官网翻译】性能篇(四)为电池寿命做优化——使用Battery Historian分析电源使用情况
  18. 从jsp到java文件再返回到前台页面的过程
  19. 【转载】C#代码开发过程中如何快速比较两个文件夹中的文件的异同
  20. Ubuntu下使用终端ssh访问设置了密钥的云服务器

热门文章

  1. linux积累
  2. C#中Image , Bitmap 和 BitmapData
  3. Java生成唯一的ID
  4. GPIO初始化之PB3/PB4/PA13/PA14/PA15引脚的复用--寄存器版本
  5. 13.首次安装CY7C68013A驱动失败记(结果竟然是这样)
  6. CentOS安装vsftpd
  7. 关于网站IIS日志分析搜索引擎爬虫说明
  8. storm集成kafka
  9. Codeforces Round #351 (VK Cup 2016 Round 3, Div. 2 Edition) D Bear and Two Paths
  10. JS 学习笔记--JS中的事件对象基础