SPFA(板子整理)

板子

差分约束spfa,求最长路模板,

以Codeforces 67A Partial Teacher为例

代码

#include
using namespace std;
#define fi first
#define se second
typedef pair P;
const int INF=0x3f3f3f3f;
const int N=1e3+5;
char s[N];
int n,dis[N];
vector

E[N]; bool vis[N]; void add(int u,int v,int w) { E[u].push_back(P(v,w)); } void spfa(int s) { for(int i=1;i<=n;++i) dis[i]=-INF;//最长路 dis[s]=0; queueq; q.push(s); vis[s]=1;//当前在队列中 while(!q.empty()) { int u=q.front(); q.pop(); vis[u]=0; for(int i=0;i=1 spfa(0); for(int i=1;i<=n;++i) printf("%d%c",dis[i]," \n"[i==n]); return 0; }

 

你可能感兴趣的:(知识点总结)