今天不想说太多废话~由于等下要写自己主动提交机。

不知道能不能成功呢?

题目的意思就是,一个猴子,在叠砖头 ...以下的要严格大于上面的。求叠起来最高能到多少~

n非常少,n^2算法毫无压力~话说dp的n一般都小。

我们先排序。拍完序的状态转移方程是:  dp[i]=max(dp[j])+z[i],0<=i<=j。记得要等于。

之后再线性遍历一下找出max ,不然还是WA~

还有在读入的时候,一个砖生成六个砖,能够自己暴力模拟一下。我是走循环的~

这个循环条件我也不知道怎么说。我仅仅是认为推断两两不相等好麻烦,我这个映射在小范围没出现过问题。

/***********************************************************
> OS : Linux 3.2.0-60-generic #91-Ubuntu
> Author : yaolong
> Mail : dengyaolong@yeah.net
> Time : 2014年06月03日 星期二 07:11:21
**********************************************************/
#include<iostream>
#include<cstdio>
#include<string>
#include<cstring>
#include<algorithm>
#include<vector>
using namespace std;
#define maxn 200
int x[maxn];
int y[maxn];
int z[maxn];
int dp[maxn];
int I[maxn];
int cmp(int i,int j){
if(x[i]!=x[j]){
return x[i]<x[j];
}
return y[i]<y[j];
}
int main(){
int n,i,j,tmp[3];
x[0]=y[0]=z[0]=0;
int sb=1;
while(cin>>n&&n){ int ind=1;
for(i=0;i<n;i++){
for (j=0;j<3;j++){
cin>>tmp[j];
}
for(int l=0;l<3;l++)
for(int k=0;k<3;k++)
for(int m=0;m<3;m++){
if(l*l+k*k+m*m==5){
x[ind]=tmp[l]; y[ind]=tmp[k];z[ind]=tmp[m];ind++;
} }
}
for(i=0;i<ind;i++){
I[i]=i;
}
sort(I,I+ind,cmp);
memset(dp,0,sizeof(dp));
for(i=0;i<ind;i++){
int mmax=0;
for(j=0;j<=i;j++){
if(x[I[j]]<x[I[i]]&&y[I[j]]<y[I[i]])
mmax=max(dp[I[j]],mmax);
}
dp[I[i]]=z[I[i]]+mmax;
}
int ans=0;
for(i=0;i<ind;i++){
ans=max(ans,dp[i]);
}
//for (i=1;i<ind;i++)
printf("Case %d: maximum height = %d\n",sb++,ans); } return 0;
}

HDU1069(还是dp基础)的更多相关文章

  1. 【专章】dp基础

    知识储备:dp入门. 好了,完成了dp入门,我们可以做一些稍微不是那么裸的题了. ----------------------------------------------------------- ...

  2. 【学习笔记】dp基础

    知识储备:dp入门. 好了,完成了dp入门,我们可以做一些稍微不是那么裸的题了. dp基础,主要是做题,只有练习才能彻底掌握. 洛谷P1417 烹调方案 分析:由于时间的先后会对结果有影响,所以c[i ...

  3. hdu 2089 不要62 (数位dp基础题)

    不要62 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submis ...

  4. poj 2955 Brackets (区间dp基础题)

    We give the following inductive definition of a “regular brackets” sequence: the empty sequence is a ...

  5. DP基础(线性DP)总结

    DP基础(线性DP)总结 前言:虽然确实有点基础......但凡事得脚踏实地地做,基础不牢,地动山摇,,,嗯! LIS(最长上升子序列) dp方程:dp[i]=max{dp[j]+1,a[j]< ...

  6. 树形dp基础

    今天来给大家讲一下数形dp基础 树形dp常与树上问题(lca.直径.重心)结合起来 而这里只讲最最基础的树上dp 1.选课 题目描述 在大学里每个学生,为了达到一定的学分,必须从很多课程里选择一些课程 ...

  7. poj2642 The Brick Stops Here(DP基础题)

    比基础的多一点东西的背包问题. 链接:POJ2642 大意:有N种砖,每种花费p[i],含铜量c[i],现需要用M种不同的砖融成含铜量在Cmin到Cmax之间(可等于)的砖,即这M种砖的含铜量平均值在 ...

  8. UVA103 dp基础题,DAG模型

    1.UVA103 嵌套n维空间 DAG模型记忆化搜索,或者 最长上升子序列. 2.dp[i]=max( dp[j]+1),(第i个小于第j个) (1) //DAG模型记忆化搜索 #include< ...

  9. hdu 1561 The more, The Better(树形dp,基础)

    The more, The Better Time Limit: 6000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Oth ...

随机推荐

  1. .NET轻量级ORM组件Dapper葵花宝典

    一.摘要 为什么取名叫<葵花宝典>? 从行走江湖的世界角度来讲您可以理解为一本"武功秘籍",站在我们IT编程的世界角度应该叫"开发宝典". 如果您在 ...

  2. C++获取和设置时区

    一.     获取当前系统时区信息 使用API函数GetTimeZoneInformation可以获得当前时区的相关信息,函数原型为 DWORD GetTimeZoneInformation( LPT ...

  3. YUI-compressor 在Linux下安装和使用

    介绍一个非常流行的javascript压缩工具YUI compressor,可以提供更好的压缩效率:该工具由著名的Yahoo Exceptional Performance项目组出品. JSMin非常 ...

  4. 让Less在Dreamweaver中高亮显示

    装的Dreamweavercs6还是没支持less啊,试过几种方法,感觉还是插件比较直接, 下载插件:http://download.csdn.net/download/lml_231/8556517 ...

  5. .NET:使用 XPATH 读取有 xmlns 属性的 XML 文档出现的问题

    问题 xml <sqlMap namespace="WHTR.Dao.Accounts" xmlns="http://ibatis.apache.org/mappi ...

  6. redis实现秒杀demo

    代码 package com.prosay.redis; import java.util.List; import redis.clients.jedis.Jedis; import redis.c ...

  7. wdcp支持两种安装方式

    v3.2版本已发布,支持多PHP版本共存共用,支持SSL证书,更多可看论坛 v3版讨论区 更多安装说明请看 http://www.wdlinux.cn/bbs/thread-57643-1-1.htm ...

  8. jscript调用bat注意事项

    开发的游戏项目,需要一个工具,对指定的资源进行复制.加密,然后打包.之前打包时都手工操作,复制与加密这二步分别写了几个工具(lua加密与图片资源加密是分开的),后来感觉bat操作路径特别麻烦,所以我改 ...

  9. 一分钟了解:String & StringBuilder & StringBuffer

    这三个都是字符串对象,本篇就来分析下它们的使用途径,力求简单明了. 一.String String 长度是不可变的,如果你要改变string对象的字符或者是拼接字符的话,系统就会新建一个string, ...

  10. 用纯JAVA代码来创建视图

    package com.kale.codeview; import android.os.Bundle; import android.support.v7.app.ActionBarActivity ...