算法本质:SPFA 算法描述:网上有一些人的代码是错的,只怪NOIP这种破竞赛的难度太低,数据太差,导致他们都可以溜过去了,但是有不少人的代码都是不能够AC的代码,他们利用图的进度来判断是否能够加入SPFA的列队,那么特殊情况,当有一个神经节点无法发送信号时,它后面的所有节点不都死翘翘了,迟迟不能进入列队,你们可以测试一下这一组数据:de> 5 5 1 0 0 1 0 0 0 0 0 0 1 2 1 1 3 1 2 4 1 3 4 1 4 5 1de> 思路其实还是很简单的,就是一层一层的枚举,当入读为0就入列队,如果c[i]<0 ON code lang="C">#include #include #define MAX 200 int n, p; int f[MAX]; int map[MAX][MAX]; int link[MAX][MAX]; int lenth[MAX], in[MAX]; void add(int a, int b, int c) { link[a][lenth[a]] = b; map[a][lenth[a]] = c; lenth[a]++; in[b]++; } int queue[MAX]; int end, head; void enqueue(int i) { queue[end++] = i; } int exqueue(void) { return queue[head++]; } int main(int argc, char *argv[]) { int t, s, l; int i; scanf("%d%d", &n, &p); for(i = 0; i 0){ enqueue(i); }else{ f[i] = -t; } } for(i = 0; i 0){ printf("%d %d\n", i + 1, f[i]); l = 0; } } if(l){ printf("NULL\n"); } return 0; } de>