noj skiing

2024-01-05 20:08
文章标签 noj skiing

本文主要是介绍noj skiing,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

import java.util.*;
public class Main  
{  
static int max,sum;
static 	int h[][]=new int[1002][1002];
//static 	int a[][]=new int[1002][1002];//这个打算打表优化的,AC了就没用上。
static void dfs(int h[][],int i,int j)
{
if(h[i][j]<h[i+1][j]&&h[i][j]<h[i][j-1]&&h[i][j]<h[i-1][j]&&h[i][j]<h[i][j+1])
{
max=max<sum?sum:max;
}
else
{
for(int k=0;k<4;k++)
{
switch(k)
{
case 0:if(h[i][j]>h[i][j+1]) {sum++;dfs(h,i,j+1);sum--;};break;
case 1:if(h[i][j]>h[i+1][j]) {sum++;dfs(h,i+1,j);sum--;};break;
case 2:if(h[i][j]>h[i][j-1]) {sum++;dfs(h,i,j-1);sum--;};break;
case 3:if(h[i][j]>h[i-1][j]) {sum++;dfs(h,i-1,j);sum--;};break;
}
}
}
}
public static void main(String args[])
{
Scanner cin=new Scanner(System.in);
int n=cin.nextInt();
while(n!=0)
{
max=1;n--;
int r=cin.nextInt();
int c=cin.nextInt();
for(int i=0;i<=r+1;i++) h[i][0]=h[i][c+1]=32767;
for(int j=1;j<=c;j++) h[0][j]=h[r+1][j]=32767;
for(int i=1;i<=r;i++)
for(int j=1;j<=c;j++)
h[i][j]=cin.nextInt();
for(int i=1;i<=r;i++)
{
for(int j=1;j<=c;j++)		
{
sum=1;
dfs(h,i,j);
}
}
System.out.printf("%d\n",max);
}
}
}

这篇关于noj skiing的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/574012

相关文章

计蒜客 Skiing 最长路

In this winter holiday, Bob has a plan for skiing at the mountain resort. This ski resort has MM different ski paths and NN different flags situated at those turning points. The ii-th path from the

NYOJ 10 skiing

OJ题目 : 猛戳~~ 描述 Michael喜欢滑雪百这并不奇怪, 因为滑雪的确很刺激。可是为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走上坡或者等待升降机来载你。Michael想知道载一个区域中最长底滑坡。区域由一个二维数组给出。数组的每个数字代表点的高度。下面是一个例子  1 2 3 4 5 16 17 18 19 6 15 24 25 20 7 14

skiing(动态规划)

skiing 时间限制:3000 ms | 内存限制:65535 KB 难度:5 描述 Michael喜欢滑雪百这并不奇怪, 因为滑雪的确很刺激。可是为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走上坡或者等待升降机来载你。Michael想知道载一个区域中最长底滑坡。区域由一个二维数组给出。数组的每个数字代表点的高度。下面是一个例子 1 2 3 4 5

NOJ 240题小明的调查统计(二)结构体按照多个条件排序

题目链接~~> 这一题其实一点也不难,属于简单题。开始wrong了好几次,后来才发现sort排序不稳定,需要在给结构体排序时先按成绩排,如果成绩一样,再按班级号从小到大排,如果班级 号一样,再按学号从小到大排!!! 代码: #include<stdio.h>#include<algorithm>using namespace std;struct zhang{int a,b,exam

NOJ 16题 矩形嵌套 DP(单调递增子序列)

题目链接~~> 本题为简单DP,需用单调递增子序列,不废话了一切尽在代码中。   代码: #include<stdio.h>#include<algorithm>using namespace std;int dp[1005];struct zhang{int x,y;}t[1005];bool cmp(const zhang &a,const zhang &b){retu

NOJ 523题/杭电1253题 亡命逃窜

题目链接~~> 开始在杭电上做这题时先是超内存,然后是超时,剪枝了一下结果wrong了,最后参考了一下才AC; 代码: #include<stdio.h>#include<queue>using namespace std;int a[50][50][50],n,m,u,D;int dx[7]={1,-1,0,0,0,0},dy[7]={0,0,1,-1,0,0},dz[7]={0,

POJ 1088 滑雪 NYOJ 10 skiing

题目链接~~> 做题感悟:开始做这题时是在 POJ 上做的,一眼就瞅出来用记忆化搜索 1A,但是在 NYOJ 上又重新打了一次代码 Wa 了,很是郁闷又在 POJ 上提交了一次 AC,幸好时间长暴力搜索水过,过了之后看了一下别人的代码才发现错误,在搜着已经有值的时候,那个点标记了没取消, POJ 数据有点水了。 解题思路:依次遍历每个点,遍历完一个点意味着这个值是这个点的最优值,把这个值存下来

hdu 3037 Skiing

组合数学-大组合数取模(Lucas定理) 题意: 将不超过m颗的相同的豆子放在n棵不同的树上,每棵树可以为空,求方案数mod p (1 <= n, m <= 1000000000, 1 < p < 100000,p是质数) 分析: 可以理解为有m颗豆子,在n棵树上放k颗,然后再加一棵树,放m-k颗,于是变成了m颗相同的豆子放在n+1棵不同树上的方案数。 也就是求

动态规划解决skiing问题

描述 Michael喜欢滑雪百这并不奇怪,因为滑雪的确很刺激。可是为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走上坡或者等待升降机来载你。Michael想知道载一个区域中最长底滑坡。区域由一个二维数组给出。数组的每个数字代表点的高度。下面是一个例子 1 2 3 4 516 17 18 19 615 24 25 20 714 23 22 21 813 12 11 10 9

西北工业大学2023C语言noj小白部分解答版

更新此篇更多是用作自己记录,展现小白真实成长过程,顺便给大家提供小白版noj解题代码() 欢迎来找我交流!!一起备考😭 欢迎好心大佬指导!!谢谢大佬们!! 前几题略过了,可以去看大佬代码。 大佬代码可参见http://t.csdnimg.cn/mcBo7,还有其他大佬也在更,可以自己搜到,只与这位大佬有交流(已获授权),所以这里只提到这位佬。还可以去康康这位佬更新的noj易错总结ht