hdu1160FatMouse's Speed(DP)
http://acm.hdu.edu.cn/showproblem.php?pid=1160
1A 破题敲了一个多小时 最长上升子序列和最长下降子序列合起来 并把路径保留下来 题中是可以打乱顺序去找的 先按W上升或S下降排下序 再按最升和最降做
1 #include <iostream> 2 #include<cstdio> 3 #include<string.h> 4 #include<algorithm> 5 using namespace std; 6 struct node 7 { 8 int w,s,xu; 9 }q[1011]; 10 bool cmp(node a,node b) 11 { 12 return a.w<b.w; 13 } 14 int dp[1011],da[1011][1011]; 15 int main() 16 { 17 int i = 0,j,k,n,m,g,x; 18 while(scanf("%d%d",&q[i].w,&q[i].s)!=EOF) 19 { 20 if(q[i].w==0) 21 break; 22 q[i].xu = i+1; 23 i++; 24 } 25 sort(q,q+i,cmp); 26 for(j = 0; j <i ; j++) 27 da[j][1] = q[j].xu; 28 dp[0] = 1; 29 x = 0; 30 int max = 1; 31 for(j = 1 ; j < i ; j++) 32 { 33 int tmax = 1; 34 for(k = 0 ; k < j ; k++) 35 if(q[k].w<q[j].w&&q[k].s>q[j].s&&dp[k]+1>tmax) 36 { 37 tmax = dp[k]+1; 38 for(g = 1 ; g <= dp[k] ; g++) 39 da[j][g] = da[k][g]; 40 da[j][tmax] = q[j].xu; 41 } 42 dp[j] = tmax; 43 if(tmax>max) 44 { 45 max = tmax; 46 x = j; 47 } 48 } 49 printf("%d\n",max); 50 for(i = 1 ; i <= max ; i++) 51 printf("%d\n",da[x][i]); 52 return 0; 53 }
转载于:https://www.cnblogs.com/shangyu/archive/2012/09/05/2672431.html
hdu1160FatMouse's Speed(DP)相关推荐
- HDU1160 FatMouse's Speed —— DP
题目链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=1160 FatMouse's Speed Time Limit: 2000/1000 MS ...
- HDU 1160 FatMouse#39;s Speed DP题解
本题就先排序老鼠的重量,然后查找老鼠的速度的最长递增子序列,只是由于须要按原来的标号输出,故此须要使用struct把三个信息打包起来. 查找最长递增子序列使用动态规划法.主要的一维动态规划法了. 记录 ...
- 4.15 每周作业 —— 简单DP
免费馅饼 Time Limit : 2000/1000ms (Java/Other) Memory Limit : 65536/32768K (Java/Other) Total Submissi ...
- self_drive car_学习笔记--第10课:路径规划
前言:这节课围绕无人车的路径规划开讲,包含规划时采用的一些算法思路.一些规划方式,最后以Apollo项目规划部分为例子,介绍一下其中所使用的一些规划算法以及方式.很菜现在,有些理解错误地方,还望大大们 ...
- 【自动驾驶规划】综述(一)
无人驾驶规划概要 Overview What is motion planning? Motion planning 的三个领域 如何解决一个Motion Planning问题? 基本Planning ...
- Codeforces Gym 100338H High Speed Trains 组合数学+dp+高精度
原题链接:http://codeforces.com/gym/100338/attachments/download/2136/20062007-winter-petrozavodsk-camp-an ...
- 动态规划——区间dp
在利用动态规划解决的一些实际问题当中,一类是基于区间上进行的,总的来说,这种区间dp是属于线性dp的一种.但是我们为了更好的分类,这里仍将其单独拿出进行分析讨论. 让我们结合一个题目开始对区间dp的探 ...
- NYOJ 309 BOBSLEDDING(dp)
BOBSLEDDING 时间限制:1000 ms | 内存限制:65535 KB 难度:3 描述 Dr.Kong has entered a bobsled competition because ...
- hdu1160 dp
hdu1160 题意:给出很多老鼠的数据,分别是它们的体重和跑速,为了证明老鼠越重跑得越慢,要找一组数据,由若干个老鼠组成,保证老鼠的体重依次增加而跑速依次减小,问这组数据最多能有多少老鼠,并按体重从 ...
最新文章
- 用完U盘忘记安全退出了,会造成数据丢失吗
- linux内核编译 menuconfig详解,Linux内核编译menuconfig介绍
- Day 4 - PB级规模数据的Elasticsearch分库分表实践
- 经典C语言程序100例之九一
- postgis启动_postgresql的安装和启动方法
- Nginx负载均衡策略之least_conn
- matlab常用函数——文件操作函数
- [Leetcode][第461题][JAVA][汉明距离][位运算][Brian Kernighan]
- 【转】Word 2010 取消拼写/语法检查,隐藏红线/绿线
- sql server 常用语句
- linux jdk1.7 tomcat
- jQuery之创建节点
- 一天不学习我浑sen难受(一)—一致性哈希/Hash环学习笔记
- 基于局部自适应阈值的图像二值化
- Pyhon 获取文件夹的大小统计
- 服务启动类型:自动、自动(延时启动)、手动、禁用
- 野路子玩Qt,第十集,八音盒
- 分布式系统上下层概念抽象-(2)
- Windows10下查看网卡MAC地址的方法
- 人生是一场独自的修行