(BFS)一个TLE!555!!!
  • 板块P3395 路障
  • 楼主Enmin
  • 当前回复3
  • 已保存回复3
  • 发布时间2024/8/8 19:46
  • 上次更新2024/8/8 20:41:18
查看原帖
(BFS)一个TLE!555!!!
772899
Enmin楼主2024/8/8 19:46

(BFS)求调!!!

#include<bits/stdc++.h>

using namespace std;
using ll = long long;
using db = double;
using str = string;
const int N = 1e3 + 1e2;
const int M = 1e6;
//升:priority_queue <int,vector<int>,greater<int>> qe;
//降:priority_queque <int,vector<int>,less<int>> qe;

int g[5] = {0,0,1,0,-1};
int h[5] = {0,1,0,-1,0};
int n,x[M],y[M],z[M],sum,tail;
char a[N][N];
bool bfs(int k,int l,int r,int ans) {
    while(sum<=tail) {
        for(int i=1;i<=4;i++) {
            int t1 = x[sum] + g[i];
            int t2 = y[sum] + h[i];
            if(t1>0&&t1<=k&&t2>0&&t2<=k&&a[t1][t2]=='0') {
                a[t1][t2]='x';
                tail++;
                x[tail]=t1;
                y[tail]=t2;
                z[tail]=z[sum]+1;
                if(t1==k&&t2==k) {
                    return 1;
                }
            }
        }
        sum++;
        if(z[sum]==ans) {
            a[l][r]='x';
            return 0;
        }
    }
    a[l][r]='x';
    return 0;
}
int main() {
    scanf("%d",&n);
    for(int i=1;i<=n;i++) {
        bool flag=0;
        int k,ans=0;
        scanf("%d",&k);
        memset(a,'0',sizeof(a));
        memset(x,0,sizeof(x));
        memset(y,0,sizeof(y));
        memset(z,0,sizeof(z));
        sum=1,tail=1;
        x[1]=1;
        y[1]=1;
        a[1][1]='x';
        for(int j=1;j<=2*k-2;j++) {
            int l,r;
            scanf("%d%d",&l,&r);
            if(flag==0) {
                ans++;
                if(bfs(k,l,r,ans)) {
                    flag=1;
                    ans=0;
                }
            }
        }
        if(k==1) {
            flag=1;
        }
        if(flag) {
            printf("Yes\n");
        }else {
            printf("No\n");
        }
    }
    return 0;
}

555!!!我已经被这道题卡了2个小时。

做题背景:就在我样例过的时候,提交......哇!好美丽的黑块块(只有一个TLE)。从此我伤心泪落了三百年!!!

救救我这个孩子吧!!!

我才刚学BFS,就给我一道难题......

正题:我无语,求大佬帮调!!!


真AC了!!!无语......

2024/8/8 19:46
加载中...