- 领地选择
题解在里面
- 2025-6-22 17:47:37 @
想看题解?不可能!!!你被骗了!!
3 条评论
-
-
#include<bits/stdc++.h> using namespace std; long long n,m,c,a[1010][1010],s[1010][1010]; int main(){ cin>>n>>m>>c; for(int i=1;i<=n;i++){ for(int j=1;j<=m;j++){ cin>>a[i][j]; s[i][j]=s[i-1][j]+s[i][j-1]-s[i-1][j-1]+a[i][j]; } } long long ma=-1e10,x=0,y=0; for(int i=1;i<=n-c+1;i++){ for(int j=1;j<=n-c+1;j++){ int x1=i,y1=j,x2=x1+c-1,y2=y1+c-1; if(ma<s[x2][y2]-s[x2][y1-1]-s[x1-1][y2]+s[x1-1][y1-1]){ x=i,y=j; ma=s[x2][y2]-s[x2][y1-1]-s[x1-1][y2]+s[x1-1][y1-1]; } } } cout<<x<<" "<<y; return 0; }
-
这个是真正的题解:
#include<bits/stdc++.h> using namespace std; long long a[1010][1010],s[1010][1010]; int main(){ long long n,m,c,x,y; cin>>n>>m>>c; for(int i=1;i<=n;i++){ for(int j=1;j<=m;j++){ scanf("%lld",&a[i][j]); s[i][j]=s[i][j-1]+s[i-1][j]-s[i-1][j-1]+a[i][j]; } } long long mx=-1e10; for(int x1=1;x1<=n-c+1;x1++){ for(int y1=1;y1<=m-c+1;y1++){ int x2=x1+c-1,y2=y1+c-1; if(mx<=s[x2][y2]+s[x1-1][y1-1]-s[x2][y1-1]-s[x1-1][y2]){ mx=s[x2][y2]+s[x1-1][y1-1]-s[x2][y1-1]-s[x1-1][y2]; x=x1; y=y1; } } } cout<<x<<" "<<y; return 0; }
- 1
信息
- ID
- 1799
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 6
- 标签
- 递交数
- 103
- 已通过
- 35
- 上传者