jijiqw | 2015-05-22 20:33:45
# 1
排版乱了 给跪
#include <iostream><br />
#include <math.h><br />
#include <iomanip><br />
using namespace std;<br />
<br />
int x,y;<br />
double x1,x2, y2;<br />
int n,i,j,k,m;<br />
int t;<br />
int a[102];<br />
int b[102][102];<br />
<br />
void scan(int c);<br />
<br />
int main(int argc, char** argv) {<br />
t=1; <br />
//cin>> t;<br />
//while(t){<br />
while(cin>>n>>m){<br />
i=0;j=0; <br />
n++;k=0; <br />
for(i=0;i<n;i++)<br />
for(j=0;j<n;j++){<br />
b[i][j]=0;<br />
}<br />
while(m-->0){//记录入数组 <br />
cin>>x>>y;<br />
if(x==y){<br />
k=1; <br />
}<br />
b[x][y]=1;<br />
b[x][0]++;<br />
b[0][y]++;<br />
} <br />
if(k==1){<br />
cout<<"NO"<<endl;<br />
continue;<br />
}<br />
for(i=1;i<n;i++){//扫描每一行,如果不存在该行的依赖 <br />
if(b[0][i]==0){<br />
scan(i);<br />
}<br />
}<br />
k=0; <br />
for(i=1;i<n;i++){<br />
if(b[0][i]!=0){<br />
k=1;<br />
break;<br />
}<br />
}<br />
if(k==0){<br />
cout<<"YES"<<endl;<br />
}else{<br />
cout<<"NO"<<endl;<br />
}<br />
}<br />
<br />
//cin>>x;<br />
return 0;<br />
}<br />
<br />
void scan(int c){<br />
if(b[c][0]<=0)return ;<br />
<br />
for(int d=1; d<n ; d++ ){<br />
if(b[c][d]==1){<br />
b[c][d]=0;<br />
b[0][d]--;<br />
if(b[0][d]==0){<br />
scan(d);<br />
}<br />
}<br />
<br />
}<br />
}