标签:style blog http color io os for strong sp
Time Limit: 4000MS
Memory Limit: 36000KB
给定一个N-N的矩形,每个格子有一个数字,某人最初在R行C列的位置,他可以按以下规则移动:
1.跳到相邻的行,但列数差要大于1的所有格子。跳到相邻的列,位行数差要大于1的所有格子。即如果当前位置是(r1,c1)要跳到(r2,c2)则它们满足:
|r1-r2|=1且|c1-c2|>1或者|c1-c2|=1且|r1-r2|>1
2.目标格子的数字严格大于起跳格子的数字。
要求计算在这种规则下走过的最多的格子。
输入:
第一行1个整数N表示矩形的大小。(1 ≤ N ≤
1500)
第二行两个数字R (1 ≤ R ≤
N) 和 C (1 ≤ C ≤
N)初始位置。.
接下来N行,每行N个数,表示每个格子里的数字。
输出:
一个整数表示走过的最多的格子。
注:50%的数据N小于100,80%的数据N小于1000;
样例:
输入:
4
1 1
1 2 3 4
2 3 4 5
3 4 5 6
4 5 6 7
输出:
4
输入:
5
3 3
20 16 25 17 12
11 13 13 30 17
15 29 10 26 11
27 19 14 24 22
23 21 28 18 13
输出:
21
Source
coi2008-2009-1
先上开始写的20行暴搜程序
1 # include<cmath> 2 # include<queue> 3 # include<stdio.h> 4 # include<cstring> 5 # include<iostream> 6 # include<algorithm> 7 using namespace std; 8 const int maxn=1500+50; 9 int map[maxn][maxn]; 10 int tot=0,n; 11 queue<int>q; 12 int dfs(int r1,int c1,int cur){ 13 for(int r2=1;r2<=n;r2++) 14 for(int c2=1;c2<=n;c2++) 15 if(map[r2][c2]>map[r1][c1]&&(abs(r1-r2)==1&&abs(c1-c2)>1||abs(c1-c2)==1&&abs(r1-r2)>1)) 16 dfs(r2,c2,cur+1); 17 tot=max(tot,cur); 18 } 19 int main(){ 20 scanf("%d",&n); 21 int sr,sc;scanf("%d%d",&sr,&sc); 22 for(int i=1;i<=n;i++)for(int j=1;j<=n;j++)scanf("%d",&map[i][j]); 23 dfs(sr,sc,1); 24 printf("%d",tot); 25 return 0; 26 }
然后给出50分的计划搜索
1 # include<cmath> 2 # include<stdio.h> 3 # include<algorithm> 4 using namespace std; 5 const int maxn=1500+50; 6 int map[maxn][maxn],dp[maxn][maxn]; 7 int tot=0,n; 8 int dfs(int r1,int c1){ 9 int ok=1; 10 if(dp[r1][c1])return dp[r1][c1]; 11 for(int r2=1;r2<=n;r2++) 12 for(int c2=1;c2<=n;c2++) 13 if(map[r2][c2]>map[r1][c1]&&(abs(r1-r2)==1&&abs(c1-c2)>1||abs(c1-c2)==1&&abs(r1-r2)>1)){ 14 dp[r1][c1]=max(dp[r1][c1],dfs(r2,c2)+1); 15 ok=0; 16 } 17 if(ok)dp[r1][c1]=1; 18 return dp[r1][c1]; 19 } 20 int main(){ 21 scanf("%d",&n); 22 int sr,sc;scanf("%d%d",&sr,&sc); 23 for(int i=1;i<=n;i++)for(int j=1;j<=n;j++)scanf("%d",&map[i][j]); 24 dfs(sr,sc); 25 printf("%d",dp[sr][sc]); 26 return 0; 27 }
标签:style blog http color io os for strong sp
原文地址:http://www.cnblogs.com/zoniony/p/4050903.html