题目地址:http://ac.jobdu.com/problem.php?pid=1410

题目描述:

给你一些长方体的积木,问按以下规则能最多垒几个积木。

1 一个积木上面最多只能垒另一个积木。

2 在下面的积木的长宽高要大于或等于上面的积木的长宽高

输入:

输入有多组,每组输入第一行是一个整数n(1<=n<=1000000),接下来n行的每行包括三个整数l,w,h(1 <= w,l,h <= 100),表示积木的长宽高。

输出:

对于每组输入,输出按规则最多能垒几个积木。

样例输入:
3
5 2 1
4 2 1
3 3 1
3
1 5 1
5 1 1
2 2 2
样例输出:
2
1

状态转移方程为:

dp[i][j][k] = max{ dp[i-1][j][k], dp[i][j-1][k], dp[i][j][k-1] } +hash[i][j][k],其中hash[i][j][k]表示长为i、宽为j、高为k的积木的个数。

#include <stdio.h>
#include <string.h> #define MAX 101 int Max (int a, int b, int c){
a = (a > b) ? a : b;
a = (a > c) ? a : c;
return a;
} int main(void){
int n;
int hash[MAX][MAX][MAX];
int dp[MAX][MAX][MAX];
int length;
int width;
int height;
int i;
int j;
int k;
int max; while (scanf ("%d", &n) != EOF){
memset (hash, 0, sizeof(hash));
memset (dp, 0, sizeof(dp));
for (i=0; i<n; ++i){
scanf ("%d%d%d", &length, &width, &height);
++hash[length][width][height];
}
max = 0;
for (i=1; i<MAX; ++i){
for (j=1; j<MAX; ++j){
for (k=1; k<MAX; ++k){
dp[i][j][k] = Max (dp[i-1][j][k], dp[i][j-1][k], dp[i][j][k-1]) + hash[i][j][k];
if (dp[i][j][k] > max)
max = dp[i][j][k];
}
}
}
printf ("%d\n", max);
}
return 0;
}

九度OJ 1410 垒积木 -- 动态规划的更多相关文章

  1. 九度OJ 1500 出操队形 -- 动态规划(最长上升子序列)

    题目地址:http://ac.jobdu.com/problem.php?pid=1500 题目描述: 在读高中的时候,每天早上学校都要组织全校的师生进行跑步来锻炼身体,每当出操令吹响时,大家就开始往 ...

  2. 九度OJ 1499 项目安排 -- 动态规划

    题目地址:http://ac.jobdu.com/problem.php?pid=1499 题目描述: 小明每天都在开源社区上做项目,假设每天他都有很多项目可以选,其中每个项目都有一个开始时间和截止时 ...

  3. 九度OJ 1547 出入栈 -- 动态规划

    题目地址:http://ac.jobdu.com/problem.php?pid=1547 题目描述: 给定一个初始为空的栈,和n个操作组成的操作序列,每个操作只可能是出栈或者入栈. 要求在操作序列的 ...

  4. 九度OJ 1131 合唱队形 -- 动态规划(最长递增子序列)

    题目地址:http://ac.jobdu.com/problem.php?pid=1131 题目描述: N位同学站成一排,音乐老师要请其中的(N-K)位同学出列,使得剩下的K位同学不交换位置就能排成合 ...

  5. 九度OJ 1453 Greedy Tino -- 动态规划

    题目地址:http://ac.jobdu.com/problem.php?pid=1453 题目描述: Tino wrote a long long story. BUT! in Chinese... ...

  6. 九度OJ 1452 搬寝室 -- 动态规划

    题目地址:http://ac.jobdu.com/problem.php?pid=1452 题目描述: 搬寝室是很累的,xhd深有体会.时间追述2006年7月9号,那天xhd迫于无奈要从27号楼搬到3 ...

  7. 九度OJ 1086 最小花费--动态规划

    题目地址:http://ac.jobdu.com/problem.php?pid=1086 题目描述: 在某条线路上有N个火车站,有三种距离的路程,L1,L2,L3,对应的价格为C1,C2,C3.其对 ...

  8. 九度OJ 1531 货币面值(网易游戏2013年校园招聘笔试题) -- 动态规划

    题目地址:http://ac.jobdu.com/problem.php?pid=1531 题目描述: 小虎是游戏中的一个国王,在他管理的国家中发行了很多不同面额的纸币,用这些纸币进行任意的组合可以在 ...

  9. 【九度OJ】题目1170:找最小数 解题报告

    [九度OJ]题目1170:找最小数 解题报告 标签(空格分隔): 九度OJ http://ac.jobdu.com/problem.php?pid=1170 题目描述: 第一行输入一个数n,1 < ...

随机推荐

  1. sqlite3使用教程1 SQLite 命令

    http://www.runoob.com/sqlite/sqlite-commands.html 本章将向您讲解 SQLite 编程人员所使用的简单却有用的命令.这些命令被称为 SQLite 的点命 ...

  2. linux集群时间同步

    说明:由于hadoop集群对时间要求很高,所以集群内主机要经常同步.本文档适合ubuntu.redhat系列. 注:很多内容是在网上摘录,然后试验后总结,如有疑问可留言探讨. 1.设置主机时间准确(任 ...

  3. SQLServer2005日志传送常见的几个问题

    1.STANDBY 只读方式还原数据库:[备份数据库服务器]将完全备份文件复制到备份数据库服务器上,并以STANDBY的方式进行恢复 . SQL语句: RESTORE DATABASE [CNBlog ...

  4. 【Android开发经验】使用Ant批量打包Android应用全然指南

    本文章由Socks完毕.博客地址:http://blog.csdn.net/zhaokaiqiang1992 转载请说明. 折腾了一下午.百度了一下午,最终实现了使用Ant对Android应用的批量打 ...

  5. 上struts2的xml在&lt;result type=&quot;redirect&quot;&gt;参数问题

    今天做项目,我遇到了一个精彩的问题. 我需要在struts的xml中的<action>的<result>中配置type="redirect".同一时候须要传 ...

  6. android124 zhihuibeijing 新闻中心-组图

    package com.itheima.zhbj52.base.menudetail; import java.util.ArrayList; import android.app.Activity; ...

  7. careercup-中等难度 17.5

    17.5 写一个函数来模拟游戏. 游戏规则如下: 4个槽,里面放4个球,球的颜色有4种,红(R ),黄(Y),绿(G),蓝(B).比如, 给出一个排列RGGB,表示第一个槽放红色球,第二和第三个槽放绿 ...

  8. Google stuff

    Google Pro Tip: Use Back-of-the-envelope-calculations to Choose the Best Design - High Scalability - ...

  9. 解决Windows2008Server上PLSQL登录时报ORA-12557

    公司的Oracle服务端是安装在一台Linux服务器上,版本号为11.1.0.7.0.我们开发的系统部署在Windows 2008 Server(x64),因为偶尔需要调用Oracle数据库,所以最开 ...

  10. codereview介绍

    1. 定义: Code review is systematic examination (often known as peer review) of computer source code. I ...