FatMouse's Speed---hdu1160(简单dp)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1160
题意就是给你一些老鼠(编号1,2,3,4,5,6,7,8...)的体重和他们的速度然后求出最大的n满足
W[m[1]] < W[m[2]] < ... < W[m[n]]
and
S[m[1]] > S[m[2]] > ... > S[m[n]]
然后把原来的编号按照上面的序列输出来;
先把他们排序一下dp的时候记录一下路径;
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<algorithm>
using namespace std;
#define N 1550
#define INF 0xffffff
struct node
{
int w, s, id;
}a[N];
int cmp(node p, node q)
{
if(p.w!=q.w)
return p.w<q.w;
return p.s>q.s;
}
int main()
{
int n=, dp[N], pre[N];
///freopen("in.txt", "r", stdin);
while(scanf("%d%d", &a[n].w, &a[n].s)!=EOF)
{
a[n].id=n+;
n++;
}
sort(a, a+n, cmp);
memset(dp, , sizeof(dp));
memset(pre, -, sizeof(pre));
int Max = ;
int Index = -;
for(int i=; i<n; i++)
{
dp[i]=;
for(int j=; j<i; j++)
{
if(a[j].w<a[i].w && a[j].s>a[i].s)
{
if(dp[j]+>dp[i])
{
dp[i]=dp[j]+;
pre[i]=j;
}
}
}
if(Max<dp[i])
{
Max = dp[i];
Index = i;
}
}
printf("%d\n", Max);
int b[N]={},k=;
for(int i=Index; i!=-; i=pre[i])
{
b[k++]=a[i].id;
}
for(int i=k-; i>=; i--)
printf("%d\n", b[i]);
return ;
}
FatMouse's Speed---hdu1160(简单dp)的更多相关文章
- hdu1160简单dp最长下降子序列
/* 简单dp,要记录顺序 解:先排序,然后是一个最长下降子序列 ,中间需记录顺序 dp[i]=Max(dp[i],dp[j]+1); */ #include<stdio.h> #incl ...
- FatMouse's Speed ~(基础DP)打印路径的上升子序列
FatMouse believes that the fatter a mouse is, the faster it runs. To disprove this, you want to take ...
- ZOJ 1108 FatMouse's Speed (HDU 1160) DP
传送门: ZOJ:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=108 HDU :http://acm.hdu.edu.cn/s ...
- 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's Speed (DP)
FatMouse's Speed Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Su ...
- FatMouse's Speed 基础DP
FatMouse's Speed Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) ...
- zoj 1108 FatMouse's Speed 基础dp
FatMouse's Speed Time Limit: 2 Seconds Memory Limit:65536 KB Special Judge FatMouse believe ...
- zoj 1108 FatMouse's Speed 基础dp
FatMouse's Speed Time Limit: 2 Seconds Memory Limit:65536 KB Special Judge FatMouse believe ...
- FatMouse's Speed
J - FatMouse's Speed DP的题写得多了慢慢也有了思路,虽然也还只是很简单的DP. 因为需要输出所有选择的老鼠,所以刚开始的时候想利用状态压缩来储存所选择的老鼠,后面才发现n太大1& ...
随机推荐
- linux下时间操作1
本文是对我之前写的文章:C++时间操作 的更深入补充.之前那个文章就是一个快速入门的东西,后面力图把一些更深入的细节补充完整. 时间分类的基本介绍 在介绍一些时间相关的操作函数之前,先来介绍一下lin ...
- ssh远程主机的免密登录配置
ssh经常登录远程主机,需要输入密码,很麻烦,怎样变懒呢? test environment: hostA:ubuntu14.04 username:frank ip:192.168.1. ...
- cocoa pods 升级遇到的问题
1. cocoa pods 升级遇到的问题 运行 sudo gem update --system 报错 Updating rubygems-update ERROR: While executing ...
- ORACLE中关于 char 和 varchar2 的比较
先建表做一个测试: ) , VARC2 )), CHAR2 ) ; INSERT INTO TT VALUES('A','A','A') ; INSERT INTO TT VALUES('A','A ...
- oracle序列在insert into 语句中的使用
很多人创建了序列,但是在插入语句中不知道怎么使用,在此做个简单介绍. oracle序列有两个参数:nextval和currval,使用的时候,需要输入sequence_name.nextval或seq ...
- ExtFormReturn,ext
package cn.edu.hbcf.common.vo; public class ExtFormReturn { /** * 是否成功 */ private boolean success; / ...
- Unix系统编程(二)open的练习
在上一篇中学习了一下open函数的基本用法,这里就要练习一下.计算机就是要实践嘛. 用open创建一个文件 #include <sys/types.h> #include <sys/ ...
- 通过某个进程号显示该进行打开的文件 lsof -p 1 11. 列出多个进程号对应的文件信息 lsof -p 123,456,789 5. 列出某个用户打开的文件信息 lsof -u username
linux命令 — lsof 查看进程打开那些文件 或者 查看文件给那个进程使用 lsof命令是什么? 可以列出被进程所打开的文件的信息.被打开的文件可以是 1.普通的文件,2.目录 3.网络文件系 ...
- Check the difficulty of problems - poj 2151 (概率+DP)
有 T(1<T<=1000) 支队伍和 M(0<M<=30) 个题目,已知每支队伍 i 解决每道题目 j 的的概率 p[i][j],现在问:每支队伍至少解决一道题,且解题最多的 ...
- php ajax dom---动态增加
js代码 <script type="text/javascript"> $(document).ready(function(){ $("#talk_sen ...