[CCCC]7-39 红色警报 (25 分)- DFS

[CCCC]7-39 红色警报 (25 分)- DFS_第1张图片
7-39.png

分析

考察dfs,不过这道题有个大坑点。。。因为一次警报要遍历两次图,通过前后的对比才能得知是否是红色警报。。。应该要做两次清零
用二维数组做的时候能通过全部测试点,但是用向量数组做的时候有几个点就是过不了,不知道是哪里的问题,至今未解决。。。

ac代码

#include
using namespace std;

int N,M;
int map[505][505]={0};
int book[505]={0};
int gongzhan[505]={0};

void dfs(int city){
    book[city]=1;
    for(int i=0;i>N>>M;
    for(int i=0;i>a>>b;
        map[a][b]=map[b][a]=1;
    }
    int K;
    cin>>K;
    for(int i=0;i>city;
        
        for(int i=0;ipre){
            printf("Red Alert: City %d is lost!\n",city);
        }else{
            printf("City %d is lost.\n",city);
        }
        
        //game over结束标志
        int flag=0;
        for(int j=0;j

向量数组做法(没能ac)

#include
using namespace std;
int n,m;
vector mp[500];
int visit[500];
int gongzhan[500];


void dfs(int i){
    visit[i]==1;
    for(int j=0;j>n>>m;
    for(int i=0;i>a>>b;
        mp[a].push_back(b);
        mp[b].push_back(a);
    }
    /*
    for(int i=0;i>k;
    for(int i=0;i>city;
        
        for(int j=0;jpre){
            printf("Red Alert:City %d is lost.\n",city);
        }else{
            printf("City %d is lost.\n",city);
        }
        
        int flag=0;
        for(int j=0;j

你可能感兴趣的:([CCCC]7-39 红色警报 (25 分)- DFS)