HDU 4001 To Miss Our Children Time(DP LIS)
来源:互联网 发布:淘宝做图片用什么软件 编辑:程序博客网 时间:2024/05/17 03:09
题目大意:给定一些木块的长宽高及其编号,
1、如果编号为0,则应该满足当前木块长(&&宽)>=下边的木块长(宽)
2、如果编号为1,则应该满足当前木块长(&&宽)>=下边的木块长(宽)&&面积也比下边木块面积大
3、如果编号为0,则应该满足当前木块长(&&宽)>下边的木块长(宽)
思路:类似于DP的LIS只不过求得是高度,输入数据后注意排序并且结构体的所有成员都要排序,注意在数据都不符合条件的时候,dp[]正确的初始化边起倒不小的作用,然后就是暴力DP找最大。
#include<map>#include<queue>#include<cmath>#include<iostream>#include<cstdio>#include<stack>#include<cstring>#include<algorithm>#define LL __int64#define inf 0x3f3f3f3fconst double PI=acos(-1.0);using namespace std;LL dp[1010];struct node{ LL l,w,h,d;}q[1010];LL op(node a,node b){ if(a.l!=b.l) return a.l<b.l; if(a.w!=b.w) return a.w<b.w; if(a.h!=b.h) return a.h<b.h; if(a.d!=b.d) return a.d>b.d;}int main(){ LL n,m,i,j,k,l,w,h; while(~scanf("%I64d",&n)&&n){ memset(dp,0,sizeof(dp)); for(i=0;i<n;++i){ scanf("%I64d%I64d%I64d%I64d",&q[i].l,&q[i].w,&q[i].h,&q[i].d); if(q[i].w>q[i].l){ swap(q[i].w,q[i].l); } } sort(q,q+n,op); LL ans=0; for(i=0;i<n;++i){ dp[i]=q[i].h; for(j=0;j<i;++j){ LL now=q[i].l*q[i].w; LL pre=q[j].l*q[j].w; LL nl=q[i].l,nw=q[i].w; LL pl=q[j].l,pw=q[j].w; if( (nl>pl&&nw>pw)&&q[i].d==2&&(dp[i]<(dp[j]+q[i].h) ) ){ dp[i]=dp[j]+q[i].h; } if((nl>=pl)&&(nw>=pw)&&q[i].d==0&&( dp[i]<(dp[j]+q[i].h) ) ){ dp[i]=dp[j]+q[i].h; } if( (nl>=pl)&&(nw>=pw)&&(now>pre)&&q[i].d==1&&(dp[i]<(dp[j]+q[i].h) ) ) dp[i]=dp[j]+q[i].h; } if(ans<dp[i]) ans=dp[i]; } printf("%I64d\n",ans); } return 0;}
0 0
- HDU 4001 To Miss Our Children Time(DP LIS)
- 【HDU 4001】 To Miss Our Children Time(DP)
- HDU 4001 To Miss Our Children Time 最长路, DP
- hdu 4001 dp To Miss Our Children Time
- hdu 4001 To Miss Our Children Time (DP)
- hdu 4001 To Miss Our Children Time DP
- HDU 4001 To Miss Our Children Time【dp】
- HDU 4001 To Miss Our Children Time
- Hdu 4001 - To Miss Our Children Time
- hdu 4001 To Miss Our Children Time
- hdu 4001 To Miss Our Children Time
- HDU 4001 To Miss Our Children Time (动态规划)
- 【HDU4001】To Miss Our Children Time(LIS变形)
- HDU 4001 To Miss Our Children Time(DAG上的DP)
- HDU 4001 To Miss Our Children Time(2011年大连网络赛 A 贪心+dp)
- HDU--4001[To Miss Our Children Time] 排序+SPFA
- HDU 4001 To Miss Our Children Time (DAG上的DP,最长路)
- HDU 4001 To Miss Our Children Time [2011 大连网络赛] [DP]
- 什么是批处理
- android 帧动画注意事项
- 免费的论文查重网站
- Cocos2d-x开发FlappyBird03-GameScene游戏场景初进入
- python 单链表
- HDU 4001 To Miss Our Children Time(DP LIS)
- 三星FOTA升级,还安卓一个公道
- 20160224 mystrcpy
- XXX电子商务平台技术框架
- Android权限
- Android之ListView中的分割线
- Redis的内部结构
- Tomcat中的线程池(APR和ThreadPool)
- js数据类型判断和数组判断