cf1676-D.X-Sum
D. X-Sum
time limit per test
2 seconds
memory limit per test
256 megabytes
input
standard input
output
standard output
Timur’s grandfather gifted him a chessboard to practice his chess skills. This chessboard is a grid $$$a$$$ with $$$n$$$ rows and $$$m$$$ columns with each cell having a non-negative integer written on it.
Timur’s challenge is to place a bishop on the board such that the sum of all cells attacked by the bishop is maximal. The bishop attacks in all directions diagonally, and there is no limit to the distance which the bishop can attack. Note that the cell on which the bishop is placed is also considered attacked. Help him find the maximal sum he can get.
Input
The first line of the input contains a single integer $$$t$$$ ($$$1 \le t \le 1000$$$) — the number of test cases. The description of test cases follows.
The first line of each test case contains the integers $$$n$$$ and $$$m$$$ ($$$1 \le n \le 200$$$, $$$1 \leq m \leq 200$$$).
The following $$$n$$$ lines contain $$$m$$$ integers each, the $$$j$$$-th element of the $$$i$$$-th line $$$a_{ij}$$$ is the number written in the $$$j$$$-th cell of the $$$i$$$-th row $$$(0\leq a_{ij} \leq 10^6)$$$
It is guaranteed that the sum of $$$n\cdot m$$$ over all test cases does not exceed $$$4\cdot10^4$$$.
Output
For each test case output a single integer, the maximum sum over all possible placements of the bishop.
Example
input
Copy
1 | 4 |
output
Copy
1 | 20 |
Note
For the first test case here the best sum is achieved by the bishop being in this position:

笔者解析
译文大意:本题皇后可以吃他自己两斜边的值,包括自己本身,要找到皇后在哪一个位置时,能够吃到总和最大的数值
笔者思路: 皇后所在的点一定和两斜边有着某种关系,由题观察可知皇后的横行和竖行的变化确实存在某种关系。可发现皇后在竖列上的移动距离和皇后在横行上移动的距离时相等的,而且在横行还可以根据竖列移动的位置向两边移动,只要不超出数组范围就是可达的
笔者代码
java版本
1 | import java.io.BufferedReader; |
c++版本
1 |
|




