刚才用VS Code打代码的时候,不小心打错了:
#include <bits/stdc++.h>
#define end cout<<"\n--------------------\n";system("pause")
using namespace std;
int n,m,du[200005];
vector<int> ans;
vector<int> e[100005];
queue<int> q;
int main(){
cin >>n >>m;
while(m--){
int u,v;
cin >>u >>v;
e[u].push_back(v);
du[v]++;
}
for(int i=1;i<=n;i++){
if(du[i]==0)q.push(i);
}
while(!q.empty()){
int now=q.front();
q.pop();
ans.push_back(now);
for(int i=0;i<e[now].size();i++){
int nxt=e[now][i];
du[nxt]--;
if(du[nxt]==0){
q,push(nxt);//这一行的“.”打成“,”了
}
}
}
cout <<(ans.size()==n?"YES":"NO");
//end;(这个别管)
return 0;
}
但运行成功了,还很完美的输出了答案
这是为什么?