垃圾炸弹

GitHub跳转原题关系图返回列表

题意与原解析均从本地 OpenJudge 缓存迁移。

OJ: noi_openjudge

题目 ID: ch0201-7213

难度:未知

标签:

日期: 2026-07-30 23:01

题意

完整题面见同目录的 problem.md

思路

代码

cpp
#include <bits/stdc++.h>
using namespace std;

int d,n;
int m[1200][1200];
int ans = 0;

bool in_map(int x,int y){
    if( x >=0 && x <=1024 && y >=0 && y <=1024)
        return 1;
    return 0;
}

int _set(int x,int y,int val){
    int i,j;
    int _max=0;

    for(i=x-d;i<=x+d;i++){
        for(j=y-d;j<=y+d;j++){
            if( in_map(i,j) ){
                m[i][j] += val;
                _max = max(_max,m[i][j]);
            }
        }
    }
    return _max;
}

void init(){
    scanf("%d%d",&d,&n);
    int i;
    for(i=1;i<=n;i++){
        int t1,t2,t3;
        scanf("%d%d%d",&t1,&t2,&t3);
        ans = max(ans,_set(t1,t2,t3));
    }
}

int main(){
    init();
    int i,j;
    int cnt=0;
    for(i=0;i<1025;i++){
        for(j=0;j<1025;j++){
            if( m[i][j] == ans)
                cnt++;
        }
    }
    

    printf("%d %d\n",cnt,ans);
    return 0;
}

复杂度

总结