HDU1069(还是dp基础)
今天不想说太多废话~由于等下要写自己主动提交机。
不知道能不能成功呢?
题目的意思就是,一个猴子,在叠砖头 ...以下的要严格大于上面的。求叠起来最高能到多少~
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基础)的更多相关文章
- 【专章】dp基础
知识储备:dp入门. 好了,完成了dp入门,我们可以做一些稍微不是那么裸的题了. ----------------------------------------------------------- ...
- 【学习笔记】dp基础
知识储备:dp入门. 好了,完成了dp入门,我们可以做一些稍微不是那么裸的题了. dp基础,主要是做题,只有练习才能彻底掌握. 洛谷P1417 烹调方案 分析:由于时间的先后会对结果有影响,所以c[i ...
- hdu 2089 不要62 (数位dp基础题)
不要62 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submis ...
- poj 2955 Brackets (区间dp基础题)
We give the following inductive definition of a “regular brackets” sequence: the empty sequence is a ...
- DP基础(线性DP)总结
DP基础(线性DP)总结 前言:虽然确实有点基础......但凡事得脚踏实地地做,基础不牢,地动山摇,,,嗯! LIS(最长上升子序列) dp方程:dp[i]=max{dp[j]+1,a[j]< ...
- 树形dp基础
今天来给大家讲一下数形dp基础 树形dp常与树上问题(lca.直径.重心)结合起来 而这里只讲最最基础的树上dp 1.选课 题目描述 在大学里每个学生,为了达到一定的学分,必须从很多课程里选择一些课程 ...
- poj2642 The Brick Stops Here(DP基础题)
比基础的多一点东西的背包问题. 链接:POJ2642 大意:有N种砖,每种花费p[i],含铜量c[i],现需要用M种不同的砖融成含铜量在Cmin到Cmax之间(可等于)的砖,即这M种砖的含铜量平均值在 ...
- UVA103 dp基础题,DAG模型
1.UVA103 嵌套n维空间 DAG模型记忆化搜索,或者 最长上升子序列. 2.dp[i]=max( dp[j]+1),(第i个小于第j个) (1) //DAG模型记忆化搜索 #include< ...
- 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 ...
随机推荐
- Snmp学习总结(六)——linux下安装和配置SNMP
一.安装SNMP 1.1.下载Net-SNMP的源代码 选择一个SNMP版本,比如5.7.1,下载地址如下:http://sourceforge.net/projects/net-snmp/files ...
- 解决ubuntu上在androidstudio中启动emulator闪退的问题(2)
平台 Ubuntu14.04 64 现象 在AndrodStudio中点击模拟器的启动按钮后,模拟器界面弹出后,又立刻闪退. 解决 一.查看模拟器的信息 从上面可以看到模拟器的存放路径以及名称: 路径 ...
- ASP.NET Web API基于OData的增删改查,以及处理实体间关系
本篇体验实现ASP.NET Web API基于OData的增删改查,以及处理实体间的关系. 首先是比较典型的一对多关系,Supplier和Product. public class Product { ...
- IOS文件系统及其相关操作(NSFileManager,NSFileHandle)
How do you get the paths to these special sandbox directories? NSArray *NSSearchPathForDirectoriesIn ...
- winform 给textbox 增加 或 减小字体大小 z
private void btnAddFont_Click(object sender, EventArgs e) { float fSize = this.txtResult.Font.Size; ...
- 实用ExtJS教程100例-007:ExtJS中Window组件最小化
在上一节中我们演示了如何使用ExtJS的Window组件,这篇内容中我们来演示一下如何将窗口最小化. 要让ExtJS标题栏中显示最小化按钮并不麻烦,只需要设置 minimizable: true 即可 ...
- maven 阿里仓库
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3. ...
- COPY ORCHARD GET 404: System.UnauthorizedAccessException: mappings.bin的访问被拒绝
COPY ORCHARD 得到 404 错误,结果翻看Logs,得到的错误是: 014-07-31 17:36:46,217 [16] Orchard.Environment.DefaultOrcha ...
- Secondary NameNode 的作用
https://blog.csdn.net/xh16319/article/details/31375197 很多人都认为,Secondary NameNode是NameNode的备份,是为了防止Na ...
- 5句mysql语句
显示表的结构: mysql> DESCRIBE MYTABLE; 往表中加入记录 mysql> insert into MYTABLE values ("hyq",&q ...