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
Sí
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;
}