PAT Clase A 1146 Orden topológico

Enlace al título original

Aquí hay una pregunta dada en el Examen de ingreso para graduados de 2018:

¿Cuál de las siguientes opciones no es una secuencia topológica obtenida de un grafo dirigido dado?

Ahora, escriba un programa para probar cada opción.

Formato de entrada
La primera línea contiene dos números enteros N y M, que representan respectivamente el número de vértices y aristas del gráfico dirigido.

Siguientes líneas M, cada línea da el inicio y el final de un borde.

Los puntos están numerados del 1 al N.

Otra línea contiene un número entero K, que indica el número de consultas.

Siguientes K líneas, cada línea contiene una permutación de todos los puntos.

Los números en una línea están separados por espacios.

Formato de salida
Muestra los números de todas las secuencias de consulta que no son secuencias topológicas en una línea.

Los números de secuencia de consulta comienzan en 0.

No debe haber espacios adicionales al principio y al final de la línea, y se garantiza que existe al menos una solución.

Rango de datos
1≤N≤1000,
1≤M≤10000,
1≤K≤100
Ejemplo de entrada:
6 8
1 2
1 3
5 2
5 4
2 3
2
6 3
4
6
4 5 1 5 2 3 6 4
5 1 2 6 3 4
5 1 2 3 6
4 5 2 1 6 3
4 1 2 3 4 5 6
Salida de muestra:
3 4

Mi solución:

#include <bits/stdc++.h>
using namespace std;
const int N = 1010, M = 10010;
struct Edge{
    int a, b;
}e[M];
int p[N];
int n, m;
int main(){
    cin >> n >> m;
    for(int i = 0; i < m; i ++ ){
        cin >> e[i].a >> e[i].b;
    }
    int k;
    cin >> k;
    bool is_first = true;
    for(int i = 0; i < k; i ++ ){
        for(int j = 1; j <= n; j ++ ){
            int x;
            cin >> x;
            p[x] = j;
        }
        bool success = true;
        for(int v = 0; v < m; v ++ ){
            if(p[e[v].a] > p[e[v].b]){
                success = false;
                break;
            }
        }
        if(!success){
            if(is_first) is_first = false;
            else cout << " ";
            cout << i;
        }
    }
    return 0;
}

Supongo que te gusta

Origin blog.csdn.net/weixin_45660485/article/details/126046389
Recomendado
Clasificación