本文主要是介绍2965: 寻宝猎人(贪心),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
2965: 寻宝猎人
题目描述
寻宝猎人Tom发现了一处宝藏,宝藏为一个N * M 的矩阵组成,矩阵的每一个点都包含一个钱袋,钱袋中装有若干金币。现在Tom只想从这个矩阵中拿走一块 3 * 3 的矩阵,请问他能拿走的最大金币数量。
输入
第一行输入两个整数N和M,表示矩阵的长和宽。
接下来N行,每行M个整数,表示钱袋中金币的数量。
3<= N , M <= 200
0<= 钱袋中金币数量 <= 1000输出
输出一个数字,表示Tom能拿走的最大金币数量。
样例输入 Copy
5 4 0 1 1 5 2 0 9 1 3 1 1 4 1 2 3 4 4 3 1 1样例输出 Copy
25
#include <iostream>
#include<cstring>
#include "string"
#include <iomanip>
#include<math.h>
#include<algorithm>
using namespace std;
int main() {int n,m;cin>>n>>m;int a[205][205];for(int i=1;i<=n;i++){for(int j=1;j<=m;j++){cin>>a[i][j];}}int maxm=0;for(int i=1;i<=n-2;i++){for(int j=1;j<=m-2;j++){int t=a[i][j]+a[i+1][j]+a[i+2][j]+a[i][j+1]+a[i][j+2]+a[i+1][j+1]+a[i+1][j+2]+a[i+2][j+1]+a[i+2][j+2];maxm=max(maxm,t);}}cout<<maxm;return 0;
}
这篇关于2965: 寻宝猎人(贪心)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!