代码:
#include<bits/stdc++.h>
//#define int long long
#define N 105
using namespace std;
int n=100,m,w[N][N];
bool g[N][N];
void dfs(int x,int y){
if(g[x][y])return;
g[x][y]=1;
for(int i=1;i<=n;i++){
w[x][i]+=w[y][i];
}
for(int i=1;i<=n;i++){
if(g[i][x]){
dfs(i,y);
}
}
for(int i=1;i<=n;i++){
if(w[x][i]>50){
dfs(x,i);
}
}
}
signed main(){
cin>>m;
for(int i=1;i<=n;i++){
g[i][i]=1;
}
while(m--){
int a,b,c;
cin>>a>>b>>c;
for(int i=1;i<=n;i++){
if(g[i][a]){
w[i][b]+=c;
if(w[i][b]>50)dfs(i,b);
}
}
}
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
if(i!=j&&g[i][j]){
cout<<i<<' '<<j<<'\n';
}
}
}
return 0;
}
只要把注释的那一行取消注释,就在最后一个点挂到第 7815 行,注释掉就能过。求问为什么?