题目描述
有一片废弃的农场包含了n行,每行m块土地,每块土地下方埋有一定数量的地雷。一支安全部队为了安全穿过这片农田首先在左上方(第1行的第1块土地)出安插了一个地雷探测装置,该装置可以探测到以其位置为左上方顶点的k1行k2列共k1*k2块矩形土地区域范围内的所有地雷。请问该枚装置可以检测到多少枚地雷?
输入格式
第1行两个整数n和m,分别表示行数和列数。
第2~(n+1)行,每行m个整数Wi,描述了n行m列的土地下方埋藏的地雷数量。
最后一行输入装置可探测的行数k1和列数k2。
n和m<=100,定义一个int w[102][102]的数组存储每个位置上的地雷数量,然后从0-k1,0-k2双层for循环遍历累加即可。
运行结果:
C代码:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int w[102][102] = { 0 };
int n, m;
int i, j;
int k1, k2;
int sum = 0;
scanf("%d %d", &n, &m); //读取n和m
for (i = 0; i < n; i++)
{
for (j = 0; j < m; j++)
scanf("%d", &w[i][j]);
}
scanf("%d %d", &k1, &k2); //读取k1 、k2
//遍历
for (i = 0; i < k1; i++)
{
for (j = 0; j < k2; j++)
sum += w[i][j];
}
printf("%d", sum);
return 0;
}
C++代码:
#include <iostream>
using namespace std;
int main()
{
int w[102][102] = { 0 };
int n, m;
int i, j;
int k1, k2;
int sum = 0;
cin >>n >>m; //读取n和m
for (i = 0; i < n; i++)
{
for (j = 0; j < m; j++)
cin >>w[i][j];
}
cin >> k1 >> k2; //读取k1 、k2
//遍历
for (i = 0; i < k1; i++)
{
for (j = 0; j < k2; j++)
sum += w[i][j];
}
cout << sum;
return 0;
}
#include <stdio.h>
#include <stdlib.h>
int main()
{
int n, m;
scanf("%d %d", &n, &m);
int** W = (int**)malloc(sizeof(int*) * (n + 1));
int** S = (int**)malloc(sizeof(int*) * (n + 1));
for (int i = 0; i <= n; i++)
{
W[i] = (int*)malloc(sizeof(int) * (m + 1));
S[i] = (int*)malloc(sizeof(int) * (m + 1));
for (int j = 0; j <= m; j++)
{
W[i][j] = 0;
S[i][j] = 0;
}
}
for (int i = 1; i <= n; i++)
{
for (int j = 1; j <= m; j++)
{
scanf("%d", &W[i][j]);
S[i][j] = S[i - 1][j] + S[i][j - 1] - S[i - 1][j - 1] + W[i][j];
}
}
int k1, k2;
scanf("%d %d", &k1, &k2);
int max_sum = 0;
for (int i = 1; i <= n - k1 + 1; i++)
{
for (int j = 1; j <= m - k2 + 1; j++)
{
int sum = S[i + k1 - 1][j + k2 - 1] - S[i + k1 - 1][j - 1] - S[i - 1][j + k2 - 1] + S[i - 1][j - 1];
if (sum > max_sum)
{
max_sum = sum;
}
}
}
printf("%d\n", max_sum);
for (int i = 0; i <= n; i++)
{
free(W[i]);
free(S[i]);
}
free(W);
free(S);
return 0;
}
https://blog.csdn.net/weixin_62802134/article/details/128140841
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!