问题标题: 酷町堂:点击此处查看全文

1
0
王子凡
王子凡
高级光能
高级光能

 

1803垃圾BOOM

怎么优化

超时80分

#include <iostream>
using namespace std;
int d, n, ti, ans;
int a[1111][1111];
int b[1111][1111];
int maxx, minx = 11111111, maxy, miny = 11111111;
int sum(int x, int y) {
    int cnt = 0;
    for (int i = x - d; i <= x + d; i ++) {
        for (int j = y - d; j <= y + d; j ++) {
            cnt += a[i][j];
        }
    }
    return cnt;
}
void flag(int x, int y) {
    for (int i = x - d; i <= x + d; i ++) {
        for (int j = y - d; j <= y + d; j ++) {
            b[i][j] = 1;
        }
    }
}
int main() {
    cin >> d >> n;
    for (int i = 1; i <= n; i ++) {
        int x, y, z;
        cin >> x >> y >> z;
        a[x][y] = z;
        flag(x, y);
        maxx = max(maxx, x);
        maxy = max(maxy, y);
        minx = min(minx, x);
        miny = min(miny, y);
    }
    for (int i = max(minx - d, 0 + d); i <= min(maxx + d, 1024 - d); i ++) {
        for (int j = max(miny - d, 0 + d); j <= min(maxx + d, 1024 - d); j ++) {
            if (b[i][j] == 0) {
                continue;
            }
            int x = sum(i, j);
            if (x > ans) {
                ans = x;
                ti = 1;
            } else if (x == ans) {
                ti ++;
            } 
        }
    }
    cout << ti << " " << ans;
    return 0;
}

 


0
0
崔竣恺
崔竣恺
中级守护
中级守护

```c++
首先,输入d,n。
然后,输入x,y,t
再加上while(n--)
循环:
for(int i=x-d;i<=x+d;i++){
    for(int j=y-d;j<=y+d;j++){                                    
        if(i>0&&i<=1024&&j>=0&&j<=1024){                                
               a[i][j]+=t;                
               mx=max(mx,a[i][j]);
            }
        }
    }
最后,两层0~1024的循环内部判断
if(a[i][j]==mx){
     cnt++;
}
后输出:cout<<cnt<<' '<<mx;

```
 

0
0
0
张恩泽
张恩泽
高级天翼
高级天翼

对,用scanf输入和printf输出

记得加头文件cstdio

0
黄依成
黄依成
中级天翼
中级天翼

#pragma GCC optimize(3)+scanf和printf=AC

0
周zhouhaoran
周zhouhaoran
初级光能
初级光能

用scanf输入和printf输出

0
0
我要回答