zoukankan      html  css  js  c++  java
  • CodeForces 796D

    不能一个一个bfs,要一起bfs

    #include<iostream>
    #include<vector>
    #include<cstdio>
    #include<queue>
    #include<cstring>
    #define maxn 300100
    using namespace std;
    vector<int>G[maxn];
    void insert(int be, int en) {
    	G[be].push_back(en);
    }
    int n, m, k;
    int vis[maxn];
    queue<int>que;
    int bfs() {
    	while (!que.empty()) {
    		int x = que.front();
    		que.pop();
    		for (int i = 0; i < G[x].size(); i++) {
    			int p = G[x][i];
    			if (!vis[p]) {
    				vis[p] = vis[x];
    				que.push(p);
    			}
    		}
    	}
    	return 0;
    }
    struct Node {
    	int be, en;
    }cnn[maxn];
    vector<int>ins;
    
    int main() {
    	int be, en;
    	scanf("%d %d %d", &n, &m, &k);
    	for (int i = 1; i <= m; i++) {
    		scanf("%d", &be);
    		if(vis[be] == 0) que.push(be);
    		vis[be] = i;
    	}
    	for (int i = 1; i < n; i++) {
    		scanf("%d %d", &be, &en);
    		insert(be, en);
    		insert(en, be);
    		cnn[i].be = be;
    		cnn[i].en = en;
    	}
    	int cnt = 0;
    	bfs();
    	for (int i = 1; i < n; i++) {
    		be = cnn[i].be;
    		en = cnn[i].en;
    		if (vis[be] != vis[en]) {
    			ins.push_back(i);
    		}
    	}
    	printf("%d
    ", ins.size());
    	for (int i = 0;i< ins.size(); i++) {
    		printf("%d ", ins[i]);
    	}
    	printf("
    ");
    	return 0;
    }
    

      

    寻找真正的热爱
  • 相关阅读:
    SQL优化,解决系统运行效率瓶颈
    C#中 哪些是值类型 哪些是引用类型
    C#异常类相关总结
    对象 序列化 字节流 传输
    给数组中的每个元素赋值
    对象转化为 xml字符串
    .NET BETWEEN方法
    Datatable To List<Entity>
    ajax原理
    gulp记录
  • 原文地址:https://www.cnblogs.com/lesning/p/11849759.html
Copyright © 2011-2022 走看看