题目描述:最长公共子序列的变形

题目序列中第i项是学生给第i号历史事件排出的序号,另外还给出了第i号历史事件的正确序号

求按照学生给出的序号排好历史事件后,所得的事件排序与历史事件实际发生的序列的最长公共子序列

分析:本题最坑的地方是审题,注意题目给出的是给第i号历史事件排出序号,求的却是按照序号排好事件后与历史事件实际发生的序列的最长公共子序列,只要将事件按所给序号排好后就完完全全是一个求最长公共子序列的题了;审题中另一个比较坑的地方是题目详细叙述了“历史考试评分”的两种策略,却明确要求你仅用第二种策略计算

rank[temp]=i ,表示排好序后第temp个发生的事件是编号为i的事件

 #include<cstdio>
#include<cstring> int max(int a,int b)
{
return a>b ? a : b;
}
int main()
{
int n,rank1[],rank2[];
int d[][],i,j;
scanf("%d",&n);
int temp;
for(i=;i<=n;i++)
{
scanf("%d",&temp);
rank1[temp]=i;
}
while(scanf("%d",&temp)!=EOF)
{
rank2[temp]=;
for(i=;i<=n;i++)
{
scanf("%d",&temp);
rank2[temp]=i;
}
memset(d,,sizeof(d));
for(i=;i<=n;i++)
for(j=;j<=n;j++)
{
if(rank1[i]==rank2[j])
d[i][j]=d[i-][j-]+;
else
d[i][j]=max(d[i-][j],d[i][j-]);
}
printf("%d\n",d[n][n]);
}
}

最新文章

  1. 希尔排序(java)
  2. 深入理解Java:类加载机制及反射
  3. MIConvexHull
  4. solrj-WiKi
  5. 1.Getting Started with ASP.NET MVC 5
  6. 【JS】Intermediate6:jQuery
  7. CentOS 6.4 安装 Fcitx4.0
  8. UC编程:环境变量的查询与修改
  9. 通知传值 notification
  10. 初学MySQL
  11. Django进阶篇【1】
  12. bittorrent 学习(三) MSG
  13. Android 记录点滴
  14. js作用域及闭包
  15. poj 2528(线段树+离散化) 市长的海报
  16. php javascript comet
  17. C++算法原理与实践(面试中的算法和准备过程)
  18. django字段的参数
  19. 【HNOI2013】数列
  20. 【BZOJ】3453: tyvj 1858 XLkxc 拉格朗日插值(自然数幂和)

热门文章

  1. 浅谈矩阵加速——以时间复杂度为O(log n)的算法实现裴波那契数列第n项及前n之和使用矩阵加速法的优化求法
  2. 信息收集【采集点OWASP CHINA】网址http://www.owasp.org.cn/
  3. HashMap为什么在多线程下会让cpu100%
  4. Spring MVC配置文件
  5. [Web 前端] 002 html 常用行行级元素
  6. new String创建了几个对象
  7. 小白学Python(13)——pyecharts 绘制 柱状图/条形图 Bar
  8. 通过设置代理解决AndroidStudio无法下载gradle问题
  9. 14、前端知识点--Vue生命周期浅析
  10. vue 中使用class(样式)