问:
  • 板块灌水区
  • 楼主CJKZS
  • 当前回复2
  • 已保存回复2
  • 发布时间2025/1/21 21:46
  • 上次更新2025/1/22 09:09:01
查看原帖
问:
713098
CJKZS楼主2025/1/21 21:46

这个程序为什么会TLE呀?

#include<bits/stdc++.h>
using namespace std;
struct node{
    long long x,y;
    long long s;
}a[500010],vis[500010];
long long r,c,d,k,ans=0;
int main(){
    cin>>r>>c>>d>>k;
    long long p(1),q(1);
    for(long long i=1;i<=r;i++){
        for(long long j=1;j<=c;j++){
            char ch;
            cin>>ch;
            if(ch=='M'){
                vis[p].x=i;vis[p].y=j;
                vis[p++].s=0;
            }
            if(ch=='S'){
                a[q].x=i;a[q++].y=j;
            }
        }
    }
    p--;q--;
    for(long long i=1;i<=p;i++){
        for(long long j=1;j<=q;j++){
            if(max(abs(vis[i].x-a[j].x),abs(vis[i].y-a[j].y))<=d){
                vis[i].s++;
            }
        }
    }
    for(long long i=1;i<=p;i++){
        if(vis[i].s>=k){
            ans++;
        }
    }
    cout<<ans<<"\n";
    return 0;
}

题目中rc<5e5r*c<5e5

2025/1/21 21:46
加载中...