7.4-滑雪

输入:输入的第一行表示区域的行数R和列数C(1 <= R,C <= 100)。下面是R行,每行有C个整数,代表高度h,0<=h<=10000。
输出:输出最长区域的长度。

解题思路:“我为人人”式递推
    Len(i,j)表示从点(i,j)出发的最长滑行长度。
    一个点(i,j), 如果周围没有比它低的点,Len(i,j) = 1。每个点的Len 值都初始化为1
    将所有点按高度从小到大排序。
    从小到大遍历所有的点。经过一个点(i,j)时,要更新他周围的,比它高的点的L值。例如:
    if H(i+1,j) > H(i,j) // 上方,H代表高度
    L(i+1,j) = max(L(i+1,j),L(i,j)+1)

#include<iostream>
#include<algorithm>
using namespace std;
const int MAX = 100;
int len[MAX][MAX];
int high[MAX][MAX];
int R, C;
struct point{
	int x,y;
	int highs;
}Area[MAX];
struct Rule{
	bool operator()(const point &a, const point &b){
		return a.highs > b.highs;
	}	
};

void DP(point s[],int k)
{
	for (int i = k; i >0; i--)//自小到大遍历
	{
		int r = Area[i].x;
		int c = Area[i].y;
		if ((r + 1 <= R) && high[r + 1][c] > high[r][c])    //下方
			len[r + 1][c] = max(len[r + 1][c], len[r][c] + 1);
		if ((r - 1 >= 0) && high[r - 1][c] > high[r][c])    //上方
			len[r - 1][c] = max(len[r - 1][c], len[r][c] + 1);
		if ((c + 1 <= C) && high[r][c + 1] > high[r][c])    //右方
			len[r][c + 1] = max(len[r][c + 1], len[r][c] + 1);
		if ((c - 1 >= 0) && high[r][c - 1] > high[r][c])    //左方
			len[r][c - 1] = max(len[r][c - 1], len[r][c] + 1);
	}
}

int main(){
	cin >> R >> C;
	for (int i = 1; i <= R; ++i){
		for (int j = 1; j <= C; ++j){
			Area[(i-1)*C+j].x = i;
			Area[(i - 1)*C + j].y = j;
			cin >> high[i][j];
			Area[(i - 1)*C + j].highs = high[i][j];
			len[i][j] = 1;
		}
	}
	sort(Area+1 , Area + R*C+1, Rule());//将所有点高度从大到小排序
	int i = R*C;
	DP(Area,R*C);

	for (int i = 1; i <= R; i++){
		cout << "前" << i << "种";
		for (int j = 1; j <= C; ++j){
			cout << len[i][j] << " ";
		}
		cout<<endl;
	}
	int tmp = 0;
	for (int i = 1; i <= R; ++i)//输出数组中的最大值;
		for (int j = 1; j <= C; ++j){
			if (tmp < len[i][j])
				tmp = len[i][j];
		}
	cout << tmp;
	return 0;
}


 

### 回答1: gradle-7.4-bin是一个开源的构建工具,它主要用于Java应用程序、Android应用程序Groovy项目的自动化构建。它是基于JVM的构建系统,能够自动下载安装项目依赖,执自定义构建任务并生成目标文件。gradle-7.4-bin 可以根据项目需求选择不同的任务插件,支持多种构建工具或IDE,例如IntelliJ IDEAEclipse。同时,gradle-7.4-bin 也有很好的扩展能力,可以通过插件来扩展功能,从而满足更多特殊的构建需求。gradle-7.4-bin相较于其他构建工具,其最大的特点是具有更高效、更通用、更易于使用的优点。总之,gradle-7.4-bin是一个极其强大的开源构建工具,不仅可以使开发人员对项目的控制更加精细,同时也可以大大提高软件的质量与效率,因此在众多开发工具中受到了广泛的赞誉应用。 ### 回答2: gradle-7.4-bin是Gradle的二进制文件,是Gradle构建工具的一个版本。Gradle是一个开源的构建自动化工具,它支持多种编程语言多种构建系统。使用Gradle,开发者可以轻松地构建、测试部署软件项目,同时也提供了强大的依赖管理。 gradle-7.4-bin中包含了Gradle的所有功能特性,比如声明式依赖管理、插件系统以及任务管理。该版本还包含了改进的增量编译功能,大幅提升了构建的性能速度。 相比于其他构建工具,Gradle具有灵活性可配置性更强的特点。它支持自定义构建脚本插件,也可以与其他工具集成,让开发者满足各种不同的项目需求。 总的来说,gradle-7.4-bin是Gradle的一个重要版本,它提供了更快、更可靠的构建功能,让开发者更加高效地进项目开发管理。 ### 回答3: gradle-7.4-bin是Gradle构建工具的二进制文件,它是Gradle 7.4版本的一个发版本。Gradle是一个基于JVM的自动化构建工具,它可以帮助开发者在项目中执编译、打包、测试、部署等任务。它使用Groovy或Kotlin编写build.gradle文件,允许开发者通过DSL语言来配置项目。在构建过程中,Gradle会自动识别解决项目中的依赖关系,并且提供多种构建自定义选项。 gradle-7.4-bin的安装过程相对简单,只需要通过官方网站下载对应平台的压缩包,并解压到指定目录即可。使用gradle-7.4-bin需要先配置环境变量,以便在命令使用gradle命令。随后,用户可以在项目工程中创建build.gradle文件,配置任务依赖,然后执gradle命令进构建。在构建完成后,可以在指定的目录下找到生成的构建产物。 总之,gradle-7.4-bin是一个功能强大的构建工具,可以有效地提升项目的构建部署效率,同时也提供了丰富的自定义选项,使得用户可以方便地在不同的项目中使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值