建筑群最长坡值

建筑群最长坡值

时间限制(普通/Java):1000MS/3000MS          运行内存限制:65536KByte

总提交:454            测试通过:168

描述

建筑群所有建筑高度分别为h1、h2…hN,可以得到一些单调递减的序列hi1、hi2…hiK,其长度称为建筑群的坡值,这里1≤i1<
i2<…< iK≤N。

你的任务:对于给定的建筑群所有建筑高度,求出建筑群最长坡值。

输入

第一行是建筑群中的建筑数N(1≤N≤1000)。

第二行依次给出各个建筑的高度(大小从0到1000),中间用空格分开。

输出

建筑群最长坡值

样例输入

10

108 60 79 50 119 40 90 230 20 80

样例输出

5

题目来源

南京邮电大学计算机学院首届ACM程序设计大赛(2009)

分析:Dynamic Programming(动态规划)。

题目的意思是找到一组 个数最多 的 递减数列。只需输出个数。

但是具体怎么规划呢。。。循环的构造很关键,构造n个坡值,最大的即为最长坡值。DP其实很有内涵。

#include<stdio.h>

//建筑群最长坡值
//DP——动态规划

int main()
{
	int n, h[1000];
	int sum[1000]; // 下标为i的最长坡值
	int max;

	scanf("%d",&n);
	for(int i=0;i<n;i++)
		scanf("%d",&h[i]);

	for(int i=0;i<n;i++)
	{
		sum[i] = 1;
	}
	for(int i=0;i<n;i++)
	{
		for(int j=0;j<i;j++)
		{
			if(h[j] > h[i])
				sum[i] = sum[j]+1>sum[i] ? sum[j]+1 : sum[i];
		}
	}

	max = sum[0];
	for(int i=1;i<n;i++)
	{
		if(sum[i] > max)
			max = sum[i];
	}
	printf("%d\n",max);

	return 0;
}

建筑群最长坡值

时间: 2024-10-12 15:03:30

建筑群最长坡值的相关文章

Leetcode 687.最长同值路径

最长同值路径 给定一个二叉树,找到最长的路径,这个路径中的每个节点具有相同值. 这条路径可以经过也可以不经过根节点. 注意:两个节点之间的路径长度由它们之间的边数表示. 示例 1: 输入: 输出: 2 示例 2: 输入: 输出: 2 注意: 给定的二叉树不超过10000个结点. 树的高度不超过1000. 思路 Intuition We can think of any path (of nodes with the same values) as up to two arrows extendi

[LeetCode] 687. Longest Univalue Path 最长唯一值路径

Given a binary tree, find the length of the longest path where each node in the path has the same value. This path may or may not pass through the root. Note: The length of path between two nodes is represented by the number of edges between them. Ex

687. 最长同值路径

给定一个二叉树,找到最长的路径,这个路径中的每个节点具有相同值. 这条路径可以经过也可以不经过根节点. 注意:两个节点之间的路径长度由它们之间的边数表示. 示例 1: 输入: 5 / \ 4 5 / \ \ 1 1 5输出: 2 来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/longest-univalue-path 1 package leetCode.binaryTree; 2 public class LongestUnivalueP

Leetcode687. 最长同值路径

这个路径可能存在从子节点经过父节点,再到子节点的情况,所有从当前节点构成的路径需要考虑左右两条路径相加,用递归,求得左右的最长路径,相加,即为所求 // Study.cpp: 定义控制台应用程序的入口点. // #include "stdafx.h" #include <iostream> #include <vector> #include <unordered_map> #include <unordered_set> #includ

LeetCode 687. Longest Univalue Path 最长同值路径 (C++/Java)

题目: Given a binary tree, find the length of the longest path where each node in the path has the same value. This path may or may not pass through the root. The length of path between two nodes is represented by the number of edges between them. Exam

【LeetCode刷题】最长同值路径:妙解

妙啊妙,学一下,最大树路径的题 原文地址:https://www.cnblogs.com/xukaiae86/p/12047329.html

poj 1088 滑雪(线性DP)

滑雪 Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 81553   Accepted: 30437 Description Michael喜欢滑雪百这并不奇怪, 因为滑雪的确很刺激.可是为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走上坡或者等待升降机来载你.Michael想知道载一个区域中最长底滑坡.区域由一个二维数组给出.数组的每个数字代表点的高度.下面是一个例子 1 2 3 4 5 16 17

mysql 约束条件 auto_increment 自动增长起始值 布长 起始偏移量

我们指定一个字段为自动增长,他默认从1开始自动增长,默认值为1,每次增长为1,步长为1 模糊查询 like % 代表任意个数字符 任意字符长度 查看mysql正在使用变量 show variables like “auto_inc%” mysql> show variables like "auto_inc%" ; +--------------------------+-------+ | Variable_name | Value | +-------------------

用python读取oracle函数返回值

在oracle中创建一个函数,本来是想返回一个index table的,没有成功.想到文本也可以传输信息,就突然来了灵感,把返回值设置文本格式. 考虑到返回数据量可能会很大,varchar2类型长度吃紧,于是将返回值类型设置为clob. 我是用scott用户的测试表,这个是函数定义情况: create or replace function test_query_func(dept varchar2) return clob is        type test_record is recor