1 条题解
-
1
#include <bits/stdc++.h> #define lowbit(x) (x&(-x)) using namespace std; int c[130][130]; int ans=0,maxn=-0x3f3f3f3f; void add(int x,int y,int k) { for(int i=x;i<=129;i+=lowbit(i)) { for(int j=y;j<=129;j+=lowbit(j)) { c[i][j]+=k; } } } int query(int x,int y) { int ans=0; for(int i=x;i>=1;i-=lowbit(i)) { for(int j=y;j>=1;j-=lowbit(j)) { ans+=c[i][j]; } } return ans; } int main() { int d,n; cin>>d>>n; for(int i=1;i<=n;i++) { int x,y,k; scanf("%d%d%d",&x,&y,&k); add(x+1,y+1,k); } for(int i=1;i<=129;i++) { for(int j=1;j<=129;j++) { int i1=i-d; if(i1<=0) { i1=1; } int i2=(i+d); if(i2>=130) { i2=129; } int j1=(j-d); if(j1<=0) { j1=1; } int j2=(j+d); if(j2>=130) { j2=129; } int ans1=query(i2,j2)-query(i2,j1-1)-query(i1-1,j2)+query(i1-1,j1-1); if(ans1>maxn) { ans=1; maxn=ans1; } else if(ans1==maxn) { ans++; } } } cout<<ans<<" "<<maxn; }
- 1
信息
- ID
- 54
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 9
- 标签
- 递交数
- 7
- 已通过
- 6
- 上传者