zoukankan      html  css  js  c++  java
  • c_pat_拓扑序列(减入度+注意输入坑)

    第一行包含两个整数 N 和 M,分别表示有向图的点和边的数量。
    接下来 M 行,每行给出一条边的起点和终点。
    点的编号从 1 到 N。
    再一行包含一个整数 K,表示询问次数。
    接下来 K 行,每行包含一个所有点的排列。
    一行中的数字用空格隔开。
    输出格式
    在一行中输出所有不是拓扑序列的询问序列的编号。

    #include<bits/stdc++.h>
    using namespace std;
    const int N=1005, K=105;
    vector<int> g[N];
    int main() {
        std::ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);
        int n,m; cin>>n>>m;
        vector<int> in(n+5,0);
        for (int i=0; i<m; i++) {
            int u,v; cin>>u>>v;
            g[u].push_back(v);
            in[v]++;
        }
        int k, is_firstTime=true; cin>>k;
        for (int i=0; i<k; i++) {
            bool is_topo=true;
            vector<int> in1(in);
            for (int j=0; j<n; j++) {
                int u; cin>>u;
                if (in1[u]!=0) {
                    is_topo=false;      //不能提前break啊,还要输入数据...
                }
                for (int v : g[u]) in1[v]--;
            }
            if (!is_topo) {
                if (is_firstTime) cout<<i, is_firstTime=false;
                else              cout<<' '<<i;
            }
        }
        return 0;
    }
    
  • 相关阅读:
    selenium之css选择器高级用法
    常系数线性齐次递推新理解
    关于莫队本质的理解
    2021.5.8总结
    决策单调性优化dp
    字符串 复习
    5.1总结
    树分块 学习笔记
    莫反 复习
    P4570 [BJWC2011]元素
  • 原文地址:https://www.cnblogs.com/wdt1/p/13697514.html
Copyright © 2011-2022 走看看