dp求顺序hdu1160
题意是仅仅求一次的顺序。先依照速度从大到小排序,速度想等到按体重增序排列。
然后基本就变成了求已定顺序序列的最长递增序列递增,跟那个求一致最大序列和的基本一致。
dp【i】里存储的是到当前i最大的递增序列个数最大的数。
dp[i+1]就是在a【i+1】大于前面的a【j】的情况下,dp【i+1】=dp【j】+1;
输出的就是从最大的dp【】值从后往前输出,所以用了个栈改成从前往后。
以为题意仅仅输出一个正确序列就好。
思路是从開始的结构体排序。打一打就想出来的。bug,调了一天。确定dp【】最大值得时候和
须要记录角标。開始就弄混了,这个bug也是通过出数据找出来的。
第一次交没有输出序列个数,wa了2次。
ac代码:
#include<cstdio>
#include<algorithm>
#include<stack>
using namespace std;
stack<int > s; struct mice
{
int x,y,z;
bool operator < (const mice&b ) const{ if(y==b.y) return x<b.x;
return y>b.y;
}
}a[1010];
int dp[1010];
int main()
{
int i=0;
while(scanf("%d%d",&a[i].x,&a[i].y)!=EOF) { a[i].z=i+1; i++; }
// printf("\n"); // printf("i==%d\n",i); sort(a,a+i); // for(int j=0;j<i;j++) printf("%d %d %d\n",a[j].x,a[j].y,a[j].z); int maxx = 0,maxIndex=0; for(int j=0;j<i;j++)
for(int k=0;k<j;k++){
if(a[k].x<a[j].x ) dp[j]=max(dp[k]+1,dp[j]);
if(dp[j]>maxx) { maxx = dp[j]; maxIndex = j; } }
// printf("maxx==%d\n",maxx); // for(int j=0;j<i;j++) printf("%d ",dp[j]);
// printf("\n"); // printf("%d\n",a[maxx].z);
// printf("%d\n",dp[maxx]+1);
s.push(a[maxIndex].z);
printf("%d\n",dp[maxIndex]+1);
// printf("%d\n",a[maxIndex].z);
dp[maxIndex]-=1;
for(int k=maxIndex-1;k>=0;k--){ if(dp[k]==dp[maxIndex]){
// printf("%d\n",dp[k]);
// printf("%d\n",a[k].z); s.push(a[k].z);
dp[maxIndex]-=1;
}
} while(!s.empty()){
printf("%d\n",s.top());
s.pop();
} return 0;
}
/**
1 5
1 3
2 4
2 2
3 3
4 4
1 3
4 2
5 1
^Z 1 5 1
2 4 3
4 4 6
1 3 2
1 3 7
3 3 5
2 2 4
4 2 8
5 1 9
0 1 2 0 0 2 1 3 4
4
5
3
1
*/
/**
1 5
1 3
2 4
2 2
3 3
4 4
1 3
4 2
5 1
^Z 1 5 1
2 4 2
3 3 3
4 2 4
5 1 5
0 1 2 3 4
5
1
2
3
4
5 */
dp求顺序hdu1160的更多相关文章
- HDU3853-LOOPS(概率DP求期望)
LOOPS Time Limit: 15000/5000 MS (Java/Others) Memory Limit: 125536/65536 K (Java/Others) Total Su ...
- HDU 4514 - 湫湫系列故事——设计风景线 - [并查集判无向图环][树形DP求树的直径]
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4514 Time Limit: 6000/3000 MS (Java/Others) Memory Li ...
- 浅谈关于树形dp求树的直径问题
在一个有n个节点,n-1条无向边的无向图中,求图中最远两个节点的距离,那么将这个图看做一棵无根树,要求的即是树的直径. 求树的直径主要有两种方法:树形dp和两次bfs/dfs,因为我太菜了不会写后者这 ...
- Poj 2096 (dp求期望 入门)
/ dp求期望的题. 题意:一个软件有s个子系统,会产生n种bug. 某人一天发现一个bug,这个bug属于某种bug,发生在某个子系统中. 求找到所有的n种bug,且每个子系统都找到bug,这样所要 ...
- hdu4035 Maze (树上dp求期望)
dp求期望的题. 题意: 有n个房间,由n-1条隧道连通起来,实际上就形成了一棵树, 从结点1出发,开始走,在每个结点i都有3种可能: 1.被杀死,回到结点1处(概率为ki) 2.找到出口,走出迷宫 ...
- POJ2096 Collecting Bugs(概率DP,求期望)
Collecting Bugs Ivan is fond of collecting. Unlike other people who collect post stamps, coins or ot ...
- POJ 2096 (dp求期望)
A - Collecting Bugs Time Limit:10000MS Memory Limit:64000KB 64bit IO Format:%I64d & %I64 ...
- loj 1038(dp求期望)
题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=25915 题意:求一个数不断地除以他的因子,直到变成1的时候 除的次 ...
- 数位DP 求K进制下0~N的每个数每位上出现的数的总和
好久没写博客了,因为感觉时间比较紧,另一方面没有心思,做的题目比较浅也是另一方面. 热身赛第二场被血虐了好不好,于是决定看看数位DP吧. 进入正题: 如题是一道经(简)典(单)的数位dp. 第一步,对 ...
随机推荐
- 【机房收费系统 4】:VB获取标准北京时间,免除时间误差
导读:这又是师傅给我指出的一个问题,说实话,其实开始根本没有当回事,觉得麻烦,可是,等我完成了获取标准北京时间后,我发现,这一步,是必须的.谢谢师傅对我的严格要求,让我一步一步的成长起来! 一.事件缘 ...
- Azure Storage Blob文件名区分大小写
最近在使用Azure Storage的时候发现Storage的命名是区分大小写的,导致我们系统在更新图片的时候有时候更新不上,最终通过判断处理文件名解决. 因此我们在使用Storage需要注意一下文件 ...
- Android刷新页面
代码改变世界 Android刷新页面 继承 extends Activity /*** 调用onCreate(), 目的是刷新数据, 从另一activity界面返回到该activity界面时, 此方 ...
- 安卓手机 HTML5 手机页面 输入表单被键盘遮挡住了
TML5 手机页面 输入表单被键盘遮挡住了 请问 大神 怎么 js 或者 JQ 判断安卓手机软键盘的键盘隐藏键按下去了? 有使用 uexWindow 方法 能判断到确定键 是 13 但是不知道这个键的 ...
- 【bzoj2901】矩阵求和 前缀和
题目描述 给出两个n*n的矩阵,m次询问它们的积中给定子矩阵的数值和. 输入 第一行两个正整数n,m. 接下来n行,每行n个非负整数,表示第一个矩阵. 接下来n行,每行n个非负整数,表示第二个矩阵. ...
- BZOJ 3527 [Zjoi2014]力 ——FFT
[题目分析] FFT,构造数列进行卷积,挺裸的一道题目诶. 还是写起来并不顺手,再练. [代码] #include <cmath> #include <cstdio> #inc ...
- TeraTerm下载
参考:http://blog.csdn.net/gxp/article/details/9169319 官方主页: http://ttssh2.sourceforge.jp/ 官方下载: http:/ ...
- PHP中的验证码类(准备篇)
<!--code.php内容--> <?php //开启session session_start(); include "vcode.class.php"; / ...
- CSS参数介绍
原文发布时间为:2008-08-03 -- 来源于本人的百度文章 [由搬家工具导入] 行高 line-height: 16px 宽度 (具体位置)-width: 16px 文字 ...
- MYSQL 中GROUP BY
group by 用法解析 group by语法可以根据给定数据列的每个成员对查询结果进行分组统计,最终得到一个分组汇总表. SELECT子句中的列名必须为分组列或列函数.列函数对于GROUP BY子 ...