南理OJ_skiing(动态规划)

原创 2015年11月20日 11:38:29
#include<cstdio>
#include<iostream>
#include<cstring>
#include<cstdlib>
using namespace std;

const int MAXN =  100+5;
int G[MAXN][MAXN][4];
int d[MAXN][MAXN];
int a[MAXN][MAXN];

int max(int a, int b){
	if(a>b) return a;
	else    return b;
} 

int dp(int i, int j, int r, int c){
	int& ans = d[i][j];
	if(ans>0) return ans;
	ans = 1; 
	if((i-1>=0)   && G[i][j][0])  ans = max(ans, dp(i-1, j, r, c)+1);  //向上 
	if((i+1<=r-1) && G[i][j][2])  ans = max(ans, dp(i+1, j, r, c)+1);  //向下 
	if((j-1>=0)   && G[i][j][3])  ans = max(ans, dp(i, j-1, r, c)+1);  //向左 
	if((j+1<=c-1) && G[i][j][1])  ans = max(ans, dp(i, j+1, r, c)+1); //向右 
	return ans;
}
int _G(int r, int c) {  //存图时,每个点数据都已经事先存储好了 
	for(int i = 0; i < r; i++){
		for(int j = 0; j < c; j++){
			if((i-1>=0)   && a[i][j]>a[i-1][j]) G[i][j][0] = 1;  //向上 
			if((i+1<=r-1) && a[i][j]>a[i+1][j]) G[i][j][2] = 1;  //向下 
			if((j-1>=0)   && a[i][j]>a[i][j-1]) G[i][j][3] = 1;  //向左 
			if((j+1<=c-1) && a[i][j]>a[i][j+1]) G[i][j][1] = 1; //向右 
		}
	}
}
void init(){
	memset(G, 0, sizeof(G));
	memset(d, 0, sizeof(d));
	memset(a, 0, sizeof(a));
}
/*
void print_map(int r, int c){  //打印存图 
	for(int i = 0; i < r; i++){
		for(int j = 0; j < c; j++){
			printf("(%d,%d,%d,%d) ", G[i][j][0], G[i][j][1], G[i][j][2], G[i][j][3]);  //括号中的顺序代表上右下左分别是否能走通 
		}
		printf("\n");
	}
} 
*/
int main(){
	int T;
	scanf("%d", &T);
	while(T--){
		int r, c;
		scanf("%d%d",&r, &c);
		init();
		for(int i = 0; i < r; i++){//存储点
			for(int j = 0; j < c; j++) {
				scanf("%d", &a[i][j]);
			}
		}
		
		_G(r,c);//存图 
		
		int ans = 0; 
		for(int i = 0; i < r; i++){
			for(int j = 0; j < c; j++) {
				ans = max(ans, dp(i, j, r, c));
			}
		}
		
		printf("%d\n", ans);
	//	print_map(r, c); 
	}
	return 0;
}

题目链接: http://acm.nyist.net/JudgeOnline/problem.php?pid=10

南理oj 不是匹配

不是匹配 时间限制:1000 ms  |  内存限制:65535 KB 描述  有N个人,N个活动, 每个人只会对2个或者3个活动感兴趣,  每个活动也只有两个人或者两个活...
  • CHRISTINA_ERZA
  • CHRISTINA_ERZA
  • 2016年08月22日 08:53
  • 177

南邮编程在线编程题十三:最大公约数

题目转自南邮编程在线:njupt.housecode.cc 实现求两个正整数的最大公约数。 说明:(1)从键盘输入两个正整数; (2)输出这两个正整数的最大公约数; 测试用...
  • qq_26479953
  • qq_26479953
  • 2015年10月21日 13:38
  • 1011

王阳明心学 之 心即理感悟

一、人的认知决定其三观 观点阐述:《传习录》P64薛侃录-侃去花间草,阳明先生告诉薛侃善恶分辨源自内心 现实联系:我们做出任何的推理结论或行为决策,都是建立在我们已经认知到的知识体系之上的。 拿一妻多...
  • ctbinzi
  • ctbinzi
  • 2017年10月28日 20:23
  • 506

南理 奇偶数分离

时间限制:3000 ms  |  内存限制:65535 KB 难度:1 描述有一个整型偶数n(2...
  • haohao_____
  • haohao_____
  • 2017年08月12日 20:46
  • 86

南理OJ_The Triangle

题链:http://acm.nyist.net/JudgeOnline/problem.php?pid=18 #include #include #include #include using na...
  • czkct
  • czkct
  • 2015年11月21日 03:25
  • 266

NJUPT GNU/Linux编程 实验1-6总结(走过的坑)

课程小结:总结实验中一些踩过的坑。
  • think_ycx
  • think_ycx
  • 2015年12月28日 20:02
  • 922

leetcode 64. Minimum Path Sum-最小路径和|动态规划

原题链接:64. Minimum Path Sum 【思路】 采用动态规划。动态规划要求利用到上一次的结果,是一种特殊的迭代思想,动态规划的关键是要得到递推关系式。对于本题,从原点到达(i, j)的最...
  • happyaaaaaaaaaaa
  • happyaaaaaaaaaaa
  • 2016年05月31日 20:11
  • 1862

【校园招聘】被南瑞集团坑了,这么大的公司竟然不讲信用!大家不要再上当受骗了!

一、前言: 转眼间研究生生活就过去两年多了,明年6月份毕业,9月份加入到校园招聘的找工作“大军”行列,话说今年就业形势不好,很多公司缩减招聘人数,还有些公司改组寄部门合并不招人。9月份笔试面试的公司...
  • lws332969674
  • lws332969674
  • 2012年11月26日 14:42
  • 35555

南瑞离职

从进入南瑞到离开南瑞,差不多3个月,简单记录一下心路历程,为以后留个小印记。 介绍一下自己,哈工大研究生,一个编程不算太差的项目经理,有着工控行业和卫星行业的背景,差不多5年的编码经验和3年的管理经...
  • gengyu2016
  • gengyu2016
  • 2017年12月19日 13:01
  • 91

CTF--南邮攻防平台(web2)

一、download~!这道题有点难度啊啊啊啊啊 1、右键查看源代码: 发现url后为歌曲名的base64编码 2、将url后换为download.php的base64编码http://wa...
  • gyt478922579
  • gyt478922579
  • 2016年11月19日 15:12
  • 1360
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:南理OJ_skiing(动态规划)
举报原因:
原因补充:

(最多只允许输入30个字)