HDU 1069

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1069

题意:把给定的长方体(不限)叠加在一起,叠加的条件是,上面一个长方体的长和宽都比下面长方体的长

和宽短;求这些长方体能叠加的最高的高度.(其中(3,2,1)可以摆放成(3,1,2)、(2,1,3)等).

思路:其实就是求最长的单调递减序列。在长和宽的递减下,求最大能得出的最大高度了。

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
struct node
{int l,w,h;
}box[111];int dp[111];bool cmp(node a,node b)//长宽比较函数
{if(a.l>b.l) return true;if(a.l==b.l&&a.w>b.w) return true;return false;
}int main()
{int d[3],n,i,j,c=1,k,sumh;while(scanf("%d",&n)!=EOF&&n){k=0;for(i=0;i<n;i++){scanf("%d%d%d",&d[0],&d[1],&d[2]); sort(d,d+3);//将数据转换成多种形式的长方体box[k].l=d[2];box[k].w=d[1];box[k].h=d[0];k++;box[k].l=d[2];box[k].w=d[0];box[k].h=d[1];k++;box[k].l=d[1];box[k].w=d[0];box[k].h=d[2];k++;     } sort(box,box+k,cmp);//长宽排序for(i=0;i<k;i++) dp[i]=box[i].h;//初始化for(i=k-2;i>=0;i--)//跟一维的类似for(j=i+1;j<k;j++){if(box[i].l>box[j].l && box[i].w>box[j].w  && dp[i]<dp[j]+box[i].h)dp[i]=dp[j]+box[i].h;}sumh=dp[0];for(i=0;i<k;i++)if(sumh<dp[i]) sumh=dp[i];printf("Case %d: maximum height = %d\n",c++,sumh);}return 0;
}

POJ3616

链接:http://poj.org/problem?id=3616

题目大意:

在一个农场里,在长度为N个时间可以挤奶,但只能挤M次,且每挤一次就要休息t分钟;

其实不难,脑子要灵活,只要先对时间排序就好啦。

dp[i]表示i段最大值

#include <cstdio>
#include <cstring>
#include <vector>
#include <iostream>
#include <algorithm>
#include <limits.h>
#include <cmath>
#include <queue>
using namespace std;
int dp[10050];
struct sa{int x,y,sum;
}p[10050];
int cmp(const sa a,const sa b){if(a.x==b.x)return a.y<b.y;return a.x<b.x;
}
int main(){int n,m,t;scanf("%d%d%d",&n,&m,&t);for(int i=0;i<m;i++){scanf("%d%d%d",&p[i].x,&p[i].y,&p[i].sum);p[i].y+=t;}sort(p,p+m,cmp);//这一步很关键,时间是有顺序的for(int i=m-1;i>=0;i--){dp[i]=p[i].sum;for(int j=i+1;j<m;j++){if(p[j].x>=p[i].y)dp[i]=max(dp[i],dp[j]+p[i].sum);//转移方程}}int maxx=0;for(int i=0;i<m;i++)maxx=max(maxx,dp[i]);cout<<maxx<<endl;return 0;
}

poj1088

http://poj.org/problem?id=1088

当初做的时候死也想不出dp顺序,是脑子太死了,非想着按顺序推,其实按高低排了序就很好搞了。

两种思路:都是从小到大排序。可以以四周为条件更新自己,或者用自己做条件对别人更新。

dp(i,j)表示从点(i,j)出发的最长滑行长度。

排序以后从小到大更新就保证了比它小的一定是正确的最长长度。

第一种思路:周围比它小的里面挑dp最大的,再加一就ok

第二种思路:把周围比它高的点都比较,需要更新就更新。举个例子:if  H(i+1,j) > H(i,j)  // H代表高度dp(i+1,j) = max(dp(i+1,j),dp(i,j)+1)

dp打开思路3:HDU1069 POJ3616 POJ1088相关推荐

  1. dp打开思路4:POJ1189 UVA12511 HDU2845 HBCPC K

    POJ1189 http://poj.org/problem?id=1189 怎么说呢,不算难,但是容易出问题 我一开始的思路是,第一个钉子只有一种情况,然后下面每个钉子:左边有钉子就加左边的情况数, ...

  2. dp打开思路:HDU1029 HDU1087 HDU1176 HDU1257 POJ1458(水题不水)

    题目:https://vjudge.net/contest/68966#overview HDU - 1029 题意:找出出现次数超过一半的数字 蠢思路:排序找中间 DP:扫一遍一个变量count记录 ...

  3. dp打开思路2:POJ2533 HDU1114 HDU1260 HDU1160(水题不水)

    题目:https://vjudge.net/contest/68966#overview POJ2533 最长上升子序列,很平常的题,但是维持单调队列+二分还是值得一贴的,O(nlogn) 关键思想: ...

  4. 梦幻星空PSD分层海报素材,通过临摹打开思路。

    临摹是学习的最好方法.不过临摹之前,自己要仔细观察,并把作品分解:然后按照自己的喜 欢寻找类似素材:再从背景开始慢慢搭建即可. 优图网带来梦幻星空PSD分层海报素材,通过临摹打开思路. 海洋桥梁漫天星 ...

  5. LeetCode 309: 一个很清晰的DP解题思路

    问题来源 题目来源链接见下方: https://leetcode.com/problems/best-time-to-buy-and-sell-stock-with-cooldown/descript ...

  6. 产品新人没有完整项目经验?这篇文章帮你打开思路

    产品新人进入公司,由于经验不足,通常都是负责产品部分模块,很少有机会能接触到从0到1的完整项目,对产品的全局思考会比较欠缺. 我分享一个去年参与的项目,这个项目我全程参与,产品经理也就是我一个人,主要 ...

  7. NIOP 1999 导弹问题 最长升降序子序列 DP[小思路]

    题目描述 某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统.但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于前一发的高度.某天,雷达捕捉到敌国的导弹 ...

  8. 帮设计师打开思路的网站主页设计案例,给你出灵感

    网站内容五花八门,网页的设计也是层出不穷,而一款吸睛的网页要如何设计?这12组网站主页设计推荐给你!现在更多UI设计师选择在 集设网www.ijishe.com交流社区进行学习探讨!供各位设计师作为参 ...

  9. 观点 | 银行业数据应用的瓶颈与打开思路

    01. 数字经济时代,银行业数据应用瓶颈 当下,数字化已成普遍共识,据<中国银行家调查报告>显示,超过9成的银行家积极推进金融科技数字化.数据驱动业务已成为数字化核心,大数据技术.数据治理 ...

最新文章

  1. 在Ubuntu中永久添加DNS
  2. 蒙古族女孩鲍尔金娜的小说《紫茗红菱》
  3. 模拟退火求解TSP问题
  4. vb添加GIF动态图片
  5. 我的欧拉工程之路_3
  6. 2048游戏c语言实验报告,2048游戏语言实验报告.doc
  7. opencv-Getting Started with Videos
  8. eclipse离线安装Activiti Designer插件
  9. mysql实现类似oracle中rownum的效果
  10. 正态分布的前世今生:最小二乘法
  11. unity 闪烁的gui button
  12. 弹性系数和线径的计算公式_弹簧弹力计算公式详解
  13. Kafka安全认证授权配置
  14. 本地搭建Git服务器,两台电脑共享代码如此简单
  15. 生物信息学python脚本_使用Python/Biopython/Clustalw的生物信息学脚本,使用stdout迭代蛋白质目录...
  16. android停止蓝牙音乐服务,蓝牙音乐播放状态一直为暂停态
  17. qtable sorting enable中文是按照什么顺序_漫威电影:22部电影观影顺序(附ZY)
  18. 使用TF Service搭建在线服务:part-1
  19. 微信安卓最新 7.0.22 版本来了,赶紧抢先内测体验吧!美颜,连麦,刷礼物统统来了...
  20. 【django】搭建博客教程(2)——Template的使用

热门文章

  1. gentoo 安装时的网络配置
  2. Linux Arch目录下处理器体系架构介绍
  3. 浅聊在美找工作以及工作之后的感受
  4. C/C++中near和far的区别
  5. 名词解释说明用英语怎么说_“恍然大悟”用英语怎么说?
  6. hp服务器如何ghost系统,惠普(HP)电脑安装不了GHOST系统的解决办法
  7. linux实验三makefile,实验平台上Makefile详细的解释
  8. 解决mapgis比例尺不正确问题
  9. 【转】MySQL日期函数与日期转换格式化函数大全
  10. ABP入门系列(20)——使用后台作业和工作者