zoukankan      html  css  js  c++  java
  • codeforces 1037D. Valid BFS?

    题目链接https://codeforces.com/problemset/problem/1037/D

    这道题目我几乎是一个测试点一个测试点过的,64个测试点,一把心酸泪

    题目中的BFS要求以随机的顺序遍历一个节点邻接点。这个条件是关键。因为当前的节点顺序会影响下一层邻接点的顺序。

    我的思路就是从队列中弹出节点时,先获取这个节点的全部邻接点,装入set中。然后读取输入的节点,如果set包含读入的节点,就把这个节点

    从set删去,同时把这个节点入队。如果不包含,说明这个序列不是BFS。

    #include<cstdio>
    #include<cstdlib>
    #include<cstring>
    #include<iostream>
    #include<algorithm>
    #include<string>
    #include<vector>
    #include<queue>
    #include<map>
    #include<unordered_map>
    #include<set>
    #include<queue>
    #define DEBUG(x) cout<<#x<<" = "<<x<<endl
    using namespace std;
    ///不要忘记加10
    const int MAXN=2e5+10;
    int N;
    vector<int> G[MAXN];
    queue<int>q;
    set<int>visited;
    int vis[MAXN];
    int main()
    {
    //    freopen("in.txt","r",stdin);
        scanf("%d",&N);
        for(int i=1;i<N;i++){
            int s,e;
            scanf("%d%d",&s,&e);
            G[s].push_back(e);
            G[e].push_back(s);
        }
        bool f=true;
        int t;
        scanf("%d",&t);
        q.push(t);
        vis[t]=true;
        if(t!=1)f=false;
        else
        while(!q.empty()){
            t=q.front();
            q.pop();
            for(int i=0;i<G[t].size();i++){
                if(!vis[G[t][i]])visited.insert(G[t][i]);
            }
            while(!visited.empty()){
                int k;
                scanf("%d",&k);
                if(visited.count(k)){
                    visited.erase(k);
                }
                else {
                    f=false;break;
                }
                if(!vis[k])
                {
                    q.push(k);
                    vis[k]=true;
                }
            }
            if(!f)break;
        }
        string ans=f?"Yes":"No";
        printf("%s",ans.c_str());
    }
  • 相关阅读:
    从输入网址到显示网页简介
    java异常及日志注意事项
    java-Excel导出中的坑
    python-arcade时钟
    tkinter-clock实例
    http远程调用原生get、post模板
    eclipse使用小技巧
    sublime text3安装Package Control和Vue Syntax Highlight
    双十一剁手了吗
    Nginx配置HTTPS
  • 原文地址:https://www.cnblogs.com/MalcolmMeng/p/9657228.html
Copyright © 2011-2022 走看看