编程题:动态规划
一只蚱蜢在花圃里。田地里有N·N朵花,排列成N行N列。
对于田野里的每一朵花,我们知道它有多少花瓣。
蚱蜢最初是在R行和C列的花上。它的目标是在遵守这些规则的同时,尽可能多地参观花:
1.它只能跳转到相邻的行或列中。如果跳转到相邻的行中,它必须跳转至少两列,如果跳转到相邻的列中,它必须跳转至少两行。换句话说,它可以从花(r1,c1)跳到花(r2,c2),满足:
•| r1-r2 |=1并且| c1-c2 |>1
或者
•| c1-c2 |=1并且| r1-r2 |>1
2.下一朵花的花瓣数必须严格大于上一朵花的花瓣数。
编写一个程序,计算蚱蜢能参观的最大花朵数量。
### 输入格式:
第一行包含整数$$N(1≤N≤1500)$$,表示这个区域的大小。
第二行包含整数$$R(1≤R≤N)$$和$$C(1≤C≤N)$$,表示蚱蜢的初始位置。
接下来的$$N$$行包含$$N$$个正整数,每个正整数之间用空格隔开,每个正整数小于花上花瓣的数量1000000。
### 输出格式:
输出一个整数——蚱蜢可以访问的最大花朵数。
### 得分:
在50%的测试数据中,N最多为100。
在80%的测试数据中,N最多为1000。
### 输入样例1:
in
4
1 1
1 2 3 4
2 3 4 5
3 4 5 6
4 5 6 7
### 输出样例1:
out
4
### 输入样例2:
in
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
### 输出样例2:
out
21
答案:若无答案欢迎评论
对于田野里的每一朵花,我们知道它有多少花瓣。
蚱蜢最初是在R行和C列的花上。它的目标是在遵守这些规则的同时,尽可能多地参观花:
1.它只能跳转到相邻的行或列中。如果跳转到相邻的行中,它必须跳转至少两列,如果跳转到相邻的列中,它必须跳转至少两行。换句话说,它可以从花(r1,c1)跳到花(r2,c2),满足:
•| r1-r2 |=1并且| c1-c2 |>1
或者
•| c1-c2 |=1并且| r1-r2 |>1
2.下一朵花的花瓣数必须严格大于上一朵花的花瓣数。
编写一个程序,计算蚱蜢能参观的最大花朵数量。
### 输入格式:
第一行包含整数$$N(1≤N≤1500)$$,表示这个区域的大小。
第二行包含整数$$R(1≤R≤N)$$和$$C(1≤C≤N)$$,表示蚱蜢的初始位置。
接下来的$$N$$行包含$$N$$个正整数,每个正整数之间用空格隔开,每个正整数小于花上花瓣的数量1000000。
### 输出格式:
输出一个整数——蚱蜢可以访问的最大花朵数。
### 得分:
在50%的测试数据中,N最多为100。
在80%的测试数据中,N最多为1000。
### 输入样例1:
in
4
1 1
1 2 3 4
2 3 4 5
3 4 5 6
4 5 6 7
### 输出样例1:
out
4
### 输入样例2:
in
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
### 输出样例2:
out
21
答案:若无答案欢迎评论