P1700 [USACO19OPEN] Milk Factory B

由N个点和N-1条边构成的有向图中,求从一个点是否能走到其余所有的点?

#include <iostream>
#include <vector>
using namespace std;

int n, m;
vector<int> adj[101];
bool visited[101];

void dfs(int u) {
  if (visited[u]) {
    return;
  }
  visited[u] = true;

  for (auto v: adj[u]) {
    dfs(v);
  }
}

int main() {
  cin >> n;
  m = n - 1;
  
  for (int i = 1; i <= m; i++) {
    int u, v;
    cin >> u >> v;
    adj[v].push_back(u); // reversed
  }
  
  for (int i = 1; i <= n; i++) {
    dfs(i);
    int cnt = 0;
    for (int j = 1; j <= n; j++) {
      if (visited[j]) {
        cnt++;
        visited[j] = false;
      }
    }
    if (cnt == n) {
      cout << i << endl;
      return 0;
    }
  }
  cout << -1 << endl;
  return 0;
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1)这本书为什么值得看: Python语言描述,如果学的Python用这本书学数据结构更合适 2016年出版,内容...
    孙怀阔阅读 14,330评论 0 15
  • 1 序 2016年6月25日夜,帝都,天下着大雨,拖着行李箱和同学在校门口照了最后一张合照,搬离寝室打车去了提前租...
    RichardJieChen阅读 10,612评论 0 12
  • 一些概念 数据结构就是研究数据的逻辑结构和物理结构以及它们之间相互关系,并对这种结构定义相应的运算,而且确保经过这...
    Winterfell_Z阅读 11,387评论 0 13
  • 1.图的基本概念 图由有限顶点集V和有限边(弧)集E组成,顶点集不可为空,边(弧)集可为空 有向图:E是有向边(即...
    WilsonEdwards阅读 5,631评论 0 1
  • 数据结构 some concepts 数据:所有能被输入到计算机中,且能被计算机处理的符号的集合。是计算机操作的对...
    liuzhangjie阅读 3,746评论 0 0