博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HDU 1160 FatMouse's Speed
阅读量:5036 次
发布时间:2019-06-12

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

题解:最长上升子序列的应用,按w升序,s降序排列后进行DP找最长序列,用pre[]数组记录该点的前驱,从而打印路径

#include 
#include
using namespace std; struct mouse{ int w,s,id; bool operator<(const mouse& m) const{ return w
m.s); } }m[1005]; int d[1005],pre[1005],ms=1,ans[1005]; void solve(){ d[0]=-1; int head=0; for(int i=1;i<=ms;i++){ int t=0; for(int j=1;j
m[j].w&&m[i].s
d[t]+1){ t=j; } } if(t==0)d[i]=1,pre[i]=-1; else{ d[i]=d[t]+1; pre[i]=t; } if(d[i]>d[head])head=i; } int as=0; while(head!=-1){ ans[as++]=m[head].id; head=pre[head]; } printf("%d\n",as); for(int i=as-1;i>=0;i--)printf("%d\n",ans[i]); } int main(){ while(scanf("%d%d",&m[ms].w,&m[ms].s)!=EOF)m[ms].id=ms,ms++; sort(m+1,m+ms+1); solve(); return 0; }

 

转载于:https://www.cnblogs.com/forever97/p/3529172.html

你可能感兴趣的文章
浏览器的DNS缓存查看和清除
查看>>
浏览器跨域问题
查看>>
HTML5 input控件 placeholder属性
查看>>
使用JAVA如何对图片进行格式检查以及安全检查处理
查看>>
html5实现移动端下拉刷新(原理和代码)
查看>>
iPhone开发中从一个视图跳到另一个视图有三种方法:
查看>>
pytho logging
查看>>
一个Java程序员应该掌握的10项技能
查看>>
c#英文大小写快捷键
查看>>
tpframe免费开源框架又一重大更新
查看>>
一.go语言 struct json相互转换
查看>>
什么是架构设计
查看>>
程序员学习能力提升三要素
查看>>
PHP 微信错误状态返回码说明
查看>>
【4.1】Python中的序列分类
查看>>
ubuntu 移动文件
查看>>
Easy Mock
查看>>
看看 Delphi XE2 为 VCL 提供的 14 种样式
查看>>
Python内置函数(29)——help
查看>>
机器学习系列-tensorflow-01-急切执行API
查看>>