D.暴力我啊!
原题链接https://nuoyanli.com/contest/31/problem/D
首先输入n-n的人然后输入范围m-m,找出在n-n的区域中m-m区域的最大值
二维数组输入 然后求出每一个m-m区域的值
输出最大值
注意多组输入
注意对m-m区域选取移动的条件 先横移 横移到头之后从第二排开始再次从左往右移
#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<cmath>
#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
long long n,m;
while(~scanf("%lld %lld",&n,&m))
{
long long i,j;
long long a[105][105];
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
scanf("%lld",&a[i][j]);
}
}
long long max=0,sum=0,o=0,p=0;
i=0;
j=0;
while(i+j<=2*n-1)
{
if(p>n-m)
{
break;
}
for(i=p;i<m+p;i++)
{
for(j=o;j<m+o;j++)
{
sum+=a[i][j];
}
}
o++;
if(o==n-m+1)
{
o=0;
p++;
}
if(max<sum)
{
max=sum;
}
sum=0;
}
printf("%lld\n",max);
}
return 0;
}