一个作死的WA的代码
/*
这题其实之前写个多个了,Dijkstra的,SPFA的,STL(TLE了)的,动态链表的,静态链表的,这次是想写一次数组模拟链表的
没想到,意外差点让人亡
if1 AC ,if2WA,苦逼了几个小时(各处查看好久才发现是这里不对劲),开始不对劲也没找到头路,之前因为直接写了relax()的函数,从没注意到
有什么,归根结底对于松弛和入队的理解不够深刻啊,这是两个过程,我的if2显然是不能满足的,
想偷懒省几行代码的,好吧,就这样苦逼的艰难前行好了
*/
#include<stdio.h>
#include<string.h>
const int V = 30001, E=150001;
const int INF=0x3F3F3F3F;
int d[V],n,m;
int head[V],pnt[E],cost[E],nxt[E],e;
void addedge(int u,int v,int c)
{
pnt[e]=v;
cost[e]=c;
nxt[e]=head[u];
head[u]=e++;
}
bool relax(int u,int v,int w)
{
if(d[v]>d[u]+w)
{
d[v]=d[u]+w;
return 1;
}
return 0;
}
int spfa()
{
int Q[E],vis[V];
int i;
博客分享了在解决POJ 3159问题时,使用SPFA算法的一个错误实现导致WA(Wrong Answer)的情况。作者详细探讨了错误的根源,并提供了有关如何避免此类错误的见解。
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



