Beschreibung
Graphentheorie das Problem zu lösen, müssen wir zuerst über das, was denken Art einer gespeicherten Karte. Aber auch kleine Xin aber wie konnte nicht verstehen , wie die Speicherkarte das Problem lösen helfen kann. Können Sie ihm dieses Problem lösen helfen?
Eingang
Mehrere Sätze von Eingang bis zum Ende der Datei.
Die erste Zeile jeder Gruppe von zwei Zahlen n, m = n Punkten, m Artikel gerichtete Kante. Dann gibt es m Reihen von zwei Zahlen u, v repräsentativ für u zu v wird eine gerichtete Kante. M + 2 zweite Reihe hat eine Zahl q , die Anzahl der Abfrage darstellt, dann q Zeilen jeweils einen Abfrage - Eingang zwei Atomen a, b.
Hinweis: Die Punktnummer ist 0 ~ n-1,2 <= n <= 500000, 0 <= m <= 500000,0 <= q <= 500000, a = b, und der Eingang , dass kein Selbstschleifenkantengewicht zu gewährleisten!
Das Ausgang
Für jede Anfrage, die Ausgangsleitung. Wenn a zu b kommunizieren kann direkt ausgegeben Ja Andernfalls gibt No.
Probe
Eingang
2 1
0 1
2
0 1
1 0
Output
Ja
Nein
#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;
}