首页 > 其他分享 >在有状态更新的dfs中一定要先更新状态,不然没有更新就查看下一个点了,会有多余运行

在有状态更新的dfs中一定要先更新状态,不然没有更新就查看下一个点了,会有多余运行

时间:2023-08-24 15:36:20浏览次数:33  
标签:状态 int dfs MAXN 更新 include

例题

P5318 【深基18.例3】查找文献 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

#include<bits/stdc++.h> 
#include<vector>
#include<queue>
#define rep(i,a,b) for (int i=a; i<=b; ++i)
#define drep(i,a,b) for (int i=a; i<b; ++i)
using namespace std;
#define MAXN 114514
int n, m;
vector<int> G[MAXN];
queue<int> q;
bool visit[MAXN];
void dfs(int t){
    cout<<t<<" ";
    for (int i=0; i<G[t].size(); i++)
        if (!visit[G[t][i]]){
            visit[G[t][i]]=true;
            dfs(G[t][i]);
        }
}
void bfs(){
    visit[1]=1;
    q.push(1);
    while (!q.empty()){
        int a = q.front();
        cout<<a<<" ";
        for (int i=0; i<G[a].size(); i++){
            if (!visit[G[a][i]]){
                visit[G[a][i]]=true;
                q.push(G[a][i]);
            }
        }
        q.pop();
    }
}
int main(){
    cin>>n>>m;
    for (int i=1; i<=m; ++i)
    {
        int a, b;
        cin>>a>>b;
        G[a].push_back(b);
    }
    for (int i=1; i<=n; ++i)
        sort(G[i].begin(),G[i].end());
    visit[1]=1;
    dfs(1);
    printf("\n");
    memset(visit,0,sizeof(visit));
    bfs();
    return 0;
}
/*
8 9
1 2
1 3
1 4
2 5
2 6
3 7
4 7
4 8
7 8
*/

 

标签:状态,int,dfs,MAXN,更新,include
From: https://www.cnblogs.com/TC2105LJY/p/17654227.html

相关文章

  • Ubuntu22隐藏上方的状态栏(hide top bar):安装hide top bar这个GNOME插件
    参考链接:https://techithings.hashnode.dev/ubuntu-how-to-hide-top-bar-and-side-bar具体步骤1.安装extensionmanger这个软件sudoapt-getupdatesudoapt-getinstallgnome-shell-extension-manager-y2.打开软件extension-manager3.点击browse,搜索hidetopbar这个插......
  • Vue3 中 keepAlive 如何搭配 VueRouter 来更自由的控制页面的状态缓存?
    在vue中,默认情况下,一个组件实例在被替换掉后会被销毁。这会导致它丢失其中所有已变化的状态——当这个组件再一次被显示时,会创建一个只带有初始状态的新实例。但是vue提供了keep-alive组件,它可以将一个动态组件包装起来从而实现组件切换时候保留其状态。本篇文章要介绍的......
  • Docker-Swarm启动服务一直处于New状态
    一、情况描述​ 近期有个项目的开发环境需要迁移nas挂载盘,需要把开发环境的服务停止,待迁移完成后重启服务。​ 该环境使用的docker-swarm启动服务,之前考虑的是swarm是docker原生支持的,启动方便,命令也较为简单,能够满足使用需求。待更换nas盘完成,通知我启动服务。​ 按照正常......
  • HDFS 读写
    参考链接:http://www.cnblogs.com/laov/p/3434917.html写流程:比如你有一个100M的文件。则写的流程大致如下。a,Client将File分块,分别为block1,和block2(64M,和36M)b,Client向NameNode发送写数据请求。c,NameNode获取Client的请求,记录Block的信息,并返回可用的DataNode,以及B......
  • Windows中Jenkins更新后无法访问Jenkins网页端
    问题:升级完Jenkins后发现无法访问网页端,利用指令重启出现报错日志:十月17,20225:02:11下午executable.MainverifyJavaVersion严重:RunningwithJavaclassversion52,whichisolderthantheMinimumrequiredversion55.Seehttps://jenkins.io/redirect/java-suppo......
  • 【Azure Developer】使用 Microsoft Graph API查看用户状态和登录记录
    问题描述通过MicrosoftGraph的API如何来查看用户信息和登录记录呢? 问题解答第一步:需要一个授权Token比如一个拥有查看用户权限的Azure账号,通过AzureCLI命令获取到一个AccessTokenazcloudset--nameAzureChinaCloudazloginazaccountget-access-token--resource'https......
  • MongoDB :第五章:MongoDB 插入更新删除查询文档
    MongoDB插入文档本章节中我们将向大家介绍如何将数据插入到MongoDB的集合中。文档的数据结构和JSON基本一样。所有存储在集合中的数据都是BSON格式。BSON是一种类似JSON的二进制形式的存储格式,是BinaryJSON的简称。插入文档MongoDB使用insert()或save()方法向集......
  • Fabric.js 元素选中状态的事件与样式
    本文简介带尬猴!你是否在使用Fabric.js时希望能在选中元素后自定义元素样式或选框(控制角和辅助线)的样式?如果是的话,可以放心往下读。本文将手把脚和你一起过一遍Fabric.js在对象元素选中后常用的样式设置。我将对象元素选中后的设置分成3类进行讲解:控制角辅助边其他样......
  • 【Azure Developer】使用 Microsoft Graph API查看用户状态和登录记录
    问题描述通过MicrosoftGraph的API如何来查看用户信息和登录记录呢? 问题解答第一步:需要一个授权Token比如一个拥有查看用户权限的Azure账号,通过AzureCLI命令获取到一个AccessTokenazcloudset--nameAzureChinaCloudazloginazaccountget-access-token--resourc......
  • AWS 提示证书签名过期无法自动更新
    如果域名没有通过验证的话,证书的过去是没有办法自动更新的。验证的方式也非常简单,通过下面的配置,把CNAME添加到你的域名上面,AWS就可会自动完成验证了。  当添加完成后,AWS验证需要的时间大致在30分钟到1个小时的样子。 https://www.ossez.com/t/aws/14550......