社区讨论
玄学,求问
P2484[SDOI2011] 打地鼠参与者 1已保存回复 0
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @mid6uc2n
- 此快照首次捕获于
- 2025/11/24 21:34 3 个月前
- 此快照最后确认于
- 2025/11/24 21:34 3 个月前
以下代码没有问题
CPP#include<bits/stdc++.h>
#define Ad(u,l,d,r,v) (sum[u][l]+=v,sum[d+1][r+1]+=v,sum[u][r+1]-=v,sum[d+1][l]-=v)
using namespace std;
int n,m,num[110][110],sum[110][110],ans,tot,t;
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
cin>>num[i][j];
tot+=num[i][j];
}
}
for(int r=1;r<=n;r++){
for(int c=1;c<=m;c++){
memset(sum, 0, sizeof(sum));
bool flag=1;
for(int i=1;i<=n&&flag;i++){
for(int j=1;j<=m&&flag;j++){
sum[i][j]+=sum[i-1][j]+sum[i][j-1]-sum[i-1][j-1];
if(sum[i][j]>num[i][j]){
flag=0;
break;
}
if(sum[i][j]<num[i][j]){
if(i+r-1>n||j+c-1>m){
flag=0;
break;
}
t=num[i][j]-sum[i][j];
Ad(i,j,i+r-1,j+c-1,t);
}
}
}
if(flag){
ans=max(ans,r*c);
}
}
}
printf("%d",tot/ans);
return 0;
}
但是更改
CPPt=num[i][j]-sum[i][j];
Ad(i,j,i+r-1,j+c-1,t);
变为
CPPAd(i,j,i+r-1,j+c-1,num[i][j]-sum[i][j]);
直接卡死
回复
共 0 条回复,欢迎继续交流。
正在加载回复...