zoukankan      html  css  js  c++  java
  • Codeforces Round #357 (Div. 2) D. Gifts by the List DFS

    D. Gifts by the List

    链接:

    http://codeforces.com/contest/681/problem/D

    代码:

     1 #include<iostream>
     2 #include<vector>
     3 using namespace std;
     4 
     5 const int maxn = 1e6 + 7;
     6 int a[maxn], d[maxn], flag;
     7 vector<int> E[maxn];
     8 vector<int> ans;
     9 
    10 void dfs(int x, int p)
    11 {
    12     for (int i = 0; i < E[x].size(); i++)
    13     {
    14         int u = E[x][i];
    15         if (u == p) continue;
    16         if (a[u] != a[x] && a[u] != u) flag = 1;
    17         dfs(u, x);
    18     }
    19     if (a[x] == x) ans.push_back(x);
    20 }
    21 
    22 int main()
    23 {
    24     int n, m;
    25     cin >> n >> m;
    26     for (int i = 1; i <= m; i++) {
    27         int p, q;
    28         cin >> p >> q;
    29         E[p].push_back(q);
    30         E[q].push_back(p);
    31         d[q]++;
    32     }
    33     for (int i = 1; i <= n; i++)
    34         cin >> a[i];
    35     for (int i = 1; i <= n; i++)
    36         if (!d[i])
    37             dfs(i, 0);
    38     if (flag) {
    39         cout << -1 << endl;
    40         return 0;
    41     }
    42     cout << ans.size() << endl;
    43     for (int i = 0; i < ans.size(); i++)
    44         cout << ans[i] << endl;
    45     return 0;
    46 }
  • 相关阅读:
    MySQL 练习题
    MySQL 增删查改
    HTML显示与隐藏
    360布局
    div布局
    HTML练习2
    HTML练习

    if语句的用法及其案例
    输入输出,数据类型与运算符
  • 原文地址:https://www.cnblogs.com/baocong/p/5918374.html
Copyright © 2011-2022 走看看