二维前缀和求矩阵最大值

轰炸区最优选取

http://www.nowcoder.com/questionTerminal/4315a64464f640c38e0500dc0d6bd982

此题相当于求二维前缀和,然后得到最大的要求子矩阵和。可能我DFS太弱了吧,就想到了这个方法;
#include<bits/stdc++.h>
using namespace std;
int d[55][55];
int main(){
int n,k;
while(scanf("%d%d",&n,&k)!=EOF){
for(int i = 1;i<=n;i++){
for(int j = 1;j<=n;j++){
scanf("%d",&d[i][j]);
d[i][j] = d[i][j]+d[i-1][j]+d[i][j-1]-d[i-1][j-1];
}
}
int maxn = 0;
for(int i = k;i<=n;i++){
for(int j = k;j<=n;j++){
maxn = max(maxn,d[i][j]-d[i][j-k]-d[i-k][j]+d[i-k][j-k]);
}
}
printf("%d\n",maxn);
}
return 0;
}

全部评论
哈哈哈我也是这么想的
点赞 回复 分享
发布于 2024-02-10 17:42 新疆
所以怎么用DFS做
点赞 回复 分享
发布于 2024-05-12 00:43 湖南

相关推荐

牛客464620405号:随便投,随便找,中国经过40多年的改革开放,人才缺口和职位空缺是巨大的,中国现在属于遍地黄金的年代,属于90后和00大机遇的时代
点赞 评论 收藏
分享
评论
4
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务