博客
关于我
HDU - 1160 最长上升子序列以及记录路径
阅读量:287 次
发布时间:2019-03-03

本文共 918 字,大约阅读时间需要 3 分钟。

题意:第一列,给出老鼠的重量,第二列,给出老鼠的速度,要证明老鼠的重量越大,速度越小,给出最多老鼠的数量,并说明第几只。

思路:先将老鼠按照重量从大到小排序,然后速度是从小到大,求最长上升子序列,学习下怎么输出最长上升子序列的路径,输出最长上升子序列路径有很多种方法,这里面是记录每个数字在最长上升子序列中的下标。因为在维护最长上升子序列数组的时候,我们会遍历到每一个元素。代码里面有样例;

//最长上升子序列输出路径/*1 7 3 5 2记录在递增序列中的下标 逆序检索1 2 2 3 21 71 31 3 51 2 5*/#include
#include
#include
#include
using namespace std;struct node{ int w,v,a;}q[10100];bool cmp(node a,node b){ return a.w>b.w;}int main(){ int n=1; while(scanf("%d%d",&q[n].w,&q[n].v)!=EOF) { q[n].a=n;n++; } sort(q+1,q+n+1,cmp);// for(int i=1;i<=n;i++)// printf("%d %d %d\n",q[i].a,q[i].w,q[i].v); int dp[10100]={0},k=1,flag[10100]={0}; dp[1]=q[1].v; flag[1]=1; int len=0; for(int i=1;i<=n;i++) { if(dp[k]
=1;i--)// 逆序检索 { if(k==flag[i]) { k--; printf("%d\n",q[i].a); } } return 0;}

 

转载地址:http://fgsl.baihongyu.com/

你可能感兴趣的文章
logstash mysql 准实时同步到 elasticsearch
查看>>
Luogu2973:[USACO10HOL]赶小猪
查看>>
mabatis 中出现&lt; 以及&gt; 代表什么意思?
查看>>
Mac book pro打开docker出现The data couldn’t be read because it is missing
查看>>
MAC M1大数据0-1成神篇-25 hadoop高可用搭建
查看>>
mac mysql 进程_Mac平台下启动MySQL到完全终止MySQL----终端八步走
查看>>
Mac OS 12.0.1 如何安装柯美287打印机驱动,刷卡打印
查看>>
MangoDB4.0版本的安装与配置
查看>>
Manjaro 24.1 “Xahea” 发布!具有 KDE Plasma 6.1.5、GNOME 46 和最新的内核增强功能
查看>>
mapping文件目录生成修改
查看>>
MapReduce程序依赖的jar包
查看>>
mariadb multi-source replication(mariadb多主复制)
查看>>
MariaDB的简单使用
查看>>
MaterialForm对tab页进行隐藏
查看>>
Member var and Static var.
查看>>
memcached高速缓存学习笔记001---memcached介绍和安装以及基本使用
查看>>
memcached高速缓存学习笔记003---利用JAVA程序操作memcached crud操作
查看>>
Memcached:Node.js 高性能缓存解决方案
查看>>
memcache、redis原理对比
查看>>
memset初始化高维数组为-1/0
查看>>