2 条题解
-
1
分享一个c++题解
#include<bits/stdc++.h> using namespace std; #define int long long int a[1010][1010],b[1010][1010];//a数组存储原来数字 b数组用来存每行的前缀和 signed main(){ int n,m,q; cin>>n>>m>>q; for(int i=1;i<=n;i++){ for(int j=1;j<=m;j++){ cin>>a[i][j]; if(j!=1) b[i][j]+=b[i][j-1]+a[i][j];//前缀和 else { b[i][j]=a[i][j];//第一列就等于原本的 } } } for(int k=1;k<=q;k++){ int x1,y1,x2,y2,ans=0; cin>>x1>>y1>>x2>>y2; //cout<<b[x1][y2]<<" "<<b[x1][y1]<<" " <<b[x2][y2]<<" "<<b[x2][y1]<<endl; for(int i=x1;i<=x2;i++){ ans+=b[i][y2]-b[i][y1-1]; } cout<<ans<<endl; } }
信息
- ID
- 42
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 2
- 标签
- 递交数
- 55
- 已通过
- 33
- 上传者