HDU1069 最长上升子序列
emm。。。。矩形嵌套 还记得吗。。。。就是它。。。
直接贴代码了。。。。
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;
import java.util.Scanner; public class Main{
final static int maxn = 1000000;
final static int INF = 0xfffffff;
public static class node{
int x,y,h;
node(int x,int y,int h)
{
this.x = x;
this.y = y;
this.h = h;
}
}
public static void main(String[] args) {
Scanner cin = new Scanner(System.in);
int cnt = 0;
while(cin.hasNext())
{
ArrayList<node> Node = new ArrayList<>();
int[] list = new int[maxn];
int n = cin.nextInt();
if(n == 0)
break;
for(int i=0;i<n;i++)
{
list[0] = cin.nextInt();
list[1] = cin.nextInt();
list[2] = cin.nextInt();
Arrays.sort(list,0,3);
Node.add(new node(list[0],list[1],list[2]));
Node.add(new node(list[0],list[2],list[1]));
Node.add(new node(list[1],list[2],list[0]));
}
Collections.sort(Node,new Comparator<node>() {
public int compare(node a,node b)
{
return a.x -b.x;
} });
int maxx = -INF;
int[] dp = new int[maxn];
for(int i=0;i<Node.size();i++)
{
dp[i] = Node.get(i).h;
for(int j=0;j<i;j++)
{
if(Node.get(i).x > Node.get(j).x && Node.get(i).y > Node.get(j).y && dp[j]+Node.get(i).h > dp[i])
dp[i] = dp[j] + Node.get(i).h;
}
maxx = Math.max(maxx, dp[i]);
}
System.out.println("Case " + ++cnt + ": maximum height = " + maxx); } }
}
HDU1069 最长上升子序列的更多相关文章
- HDU1069:Monkey and Banana(最长上升子序列的应用)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1069 这题挺简单的,给定一个箱子的长宽高,要求啰箱子,但必须保证下面箱子的长和宽必须大于上面的箱子. 一个 ...
- 用python实现最长公共子序列算法(找到所有最长公共子串)
软件安全的一个小实验,正好复习一下LCS的写法. 实现LCS的算法和算法导论上的方式基本一致,都是先建好两个表,一个存储在(i,j)处当前最长公共子序列长度,另一个存储在(i,j)处的回溯方向. 相对 ...
- 动态规划之最长公共子序列(LCS)
转自:http://segmentfault.com/blog/exploring/ LCS 问题描述 定义: 一个数列 S,如果分别是两个或多个已知数列的子序列,且是所有符合此条件序列中最长的,则 ...
- [Data Structure] LCSs——最长公共子序列和最长公共子串
1. 什么是 LCSs? 什么是 LCSs? 好多博友看到这几个字母可能比较困惑,因为这是我自己对两个常见问题的统称,它们分别为最长公共子序列问题(Longest-Common-Subsequence ...
- 动态规划求最长公共子序列(Longest Common Subsequence, LCS)
1. 问题描述 子串应该比较好理解,至于什么是子序列,这里给出一个例子:有两个母串 cnblogs belong 比如序列bo, bg, lg在母串cnblogs与belong中都出现过并且出现顺序与 ...
- LintCode 77: 最长公共子序列
public class Solution { /** * @param A, B: Two string. * @return: the length of the longest common s ...
- 最长下降子序列O(n^2)及O(n*log(n))解法
求最长下降子序列和LIS基本思路是完全一样的,都是很经典的DP题目. 问题大都类似于 有一个序列 a1,a2,a3...ak..an,求其最长下降子序列(或者求其最长不下降子序列)的长度. 以最长下降 ...
- 删除部分字符使其变成回文串问题——最长公共子序列(LCS)问题
先要搞明白:最长公共子串和最长公共子序列的区别. 最长公共子串(Longest Common Substirng):连续 最长公共子序列(Longest Common Subsequence,L ...
- [BZOJ3173][Tjoi2013]最长上升子序列
[BZOJ3173][Tjoi2013]最长上升子序列 试题描述 给定一个序列,初始为空.现在我们将1到N的数字插入到序列中,每次将一个数字插入到一个特定的位置.每插入一个数字,我们都想知道此时最长上 ...
随机推荐
- Zephyr的Threads
Threads介绍了一个线程的创建.调度以及删除过程.
- Redis缓存的使用
首先需要去Redis官网下载Redis的安装包 要在eclipse中使用Redis还需要两个jar包,需要的自行查找或者联系我 运行Redis需要开启Redis的服务端,也就是下载的安装包中的“red ...
- redis 配置 架构 基础
redis 官网 redis.io io为某国家域名后缀 有redis各种版本. java 版本 又分各种工具 clients 下 RedisClient为图形化管理界面 Jedis 才是jav ...
- Jquery UI 中的datepicker() ,获取日期后的回调函数onClose()
<head> //引入相关的css/js <link rel="stylesheet" href="//code.jquery.com/ui/1.10. ...
- Asp.net MVC 中Ajax的使用
Asp.net MVC 抛弃了Asp.net WebForm那种高度封装的控件,让我们跟底层的HTML有了更多的亲近.可以更自由.更灵活的去控制HTML的结构.样式和行为.而这点对于Ajax 的应有来 ...
- Bash : IO 重定向
标准输入/输出(standard I/O)可能是软件设计原则里最重要的概念了.这个概念就是:程序应该有数据的来源端.数据的目的端(输出结果的地方)已经报告问题的地方,它们分别被称为标准输入(stand ...
- Ionic 中控件点击延迟的处理
原文发表于我的技术博客 本文分享了在 Ionic 中如何处理控件点击延迟的问题. 原文发表于我的技术博客 1. 问题描述 在 Ionic 中,当在 iOS 环境下运行元素的点击事件时,你会发现点击响应 ...
- Linux下路由配置梳理
在日常运维作业中,经常会碰到路由表的操作.下面就linux运维中的路由操作做一梳理:---------------------------------------------------------- ...
- Ansible之playbook的使用总结 - 运维笔记
之前详细介绍了Ansible的安装, 配置, 以及Ansible常用模块的使用. 下面对Ansible的playbook用法做一小结. 为什么引入playbook?一般运维人员完成一个任务, 比如安装 ...
- GCD实现同步方法
在iOS多线程中我们知道NSOperationQueue操作队列可以直接使用addDependency函数设置操作之间的依赖关系实现线程同步,还可以使用setMaxConcurrentOperatio ...