B - La forma de realización básica de la figura dos de almacenamiento básico

Descripción

La teoría de grafos para resolver el problema, primero debemos pensar en qué tipo de un mapa almacenado. Pero Xin pequeña pero ¿cómo no podía entender cómo el mapa de memoria puede ayudar a resolver el problema. ¿Puede usted ayudar a resolver este problema?
entrada

Los sistemas múltiples de entrada al final del archivo.
La primera línea de cada grupo de dos números n, m denota n puntos, m artículo dirigida borde. Entonces hay m filas de dos números U, V representante de u a v hay un borde dirigido. M + 2 segundos fila tiene un número q representa el número de interrogación, líneas q entonces cada tener una consulta, entrada de dos átomos de a, b.

Nota: el número de punto es 0 ~ n-1,2 <= n <= 500 000, 0 <= m <= 500000,0 <= q <= 500 000, a = b, y la entrada para asegurar que ningún peso borde auto-bucle!
La Salida

Para cada consulta, la línea de salida. Si A a B puede comunicarse directamente la potencia sí, de lo contrario, Nº de resultados
muestra

Entrada

2 1
0 1
2
0 1
1 0
Salida


No

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<malloc.h>
struct node
{
    int u,v,l;
}tu[500000];
int main()
{
    int n,m,a,b,p,x,y;
    while(~scanf("%d %d",&n,&m))
    {
        for(int i=0;i<m;i++)
        {
            scanf("%d %d",&tu[i].u,&tu[i].v);
            tu[i].l = 1;
        }
        scanf("%d",&p);
        while(p--)
        {
            scanf("%d %d",&x,&y);
            int flag = 0;
            for(int i=0;i<m;i++)
            {
                if(tu[i].u == x&&tu[i].v==y&&tu[i].l == 1)
                {
                    printf("Yes\n");
                    flag = 1;
                }

            }
            if(flag == 0)
                printf("No\n");
        }
    }
    return 0;
}
Publicados 177 artículos originales · ganado elogios 7 · Vistas a 30000 +

Supongo que te gusta

Origin blog.csdn.net/Fusheng_Yizhao/article/details/104875408
Recomendado
Clasificación