题目链接:P1038 [NOIP2003 提高组] 神经网络 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
这个题要好好读题,,,,,,,,,,,,,,,,,第一次激发的神经元不会受到阈值的阻碍
代码:
#include<bits/stdc++.h>
using namespace std;
#define N 1010
struct Node{
int to,len;
};
int n,m,u,v,w;
int c[N],cd[N],rd[N];
queue<int> q;
vector<Node> g[N];
int main(){
ios::sync_with_stdio(false);
cin.tie(0),cout.tie(0);
cin>>n>>m;
for(int i=1;i<=n;i++){
cin>>c[i]>>u;
if(c[i]>0)q.push(i);
else c[i]-=u;
}
for(int i=1;i<=m;i++){
cin>>u>>v>>w;
cd[u]++,rd[v]++;
g[u].push_back({v,w});
}
while(!q.empty()){
int now=q.front();q.pop();
for(auto [to,len]:g[now]){
rd[to]--;
c[to]+=c[now]*len;
if(!rd[to]&&c[to]>0)q.push(to);
}
}
int cnt=0;
for(int i=1;i<=n;i++){
if(!cd[i]&&c[i]>0){
cout<<i<<" "<<c[i]<<endl;
cnt++;
}
}
if(cnt==0)cout<<"NULL"<<endl;
return 0;
}