差分约束
Posted hanasaki
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了差分约束相关的知识,希望对你有一定的参考价值。
例题:POJ 1716 - Integer Intervals
#include <iostream> #include <vector> #include <algorithm> #include <queue> using namespace std; const int MAXN=10010; typedef struct node int v; int w; node; vector<node> edge[MAXN]; int vis[MAXN],d[MAXN],n=0; void spfa(int src) for(int i=0;i<=n;i++) d[i]=-1,vis[i]=0; d[src]=0; queue<int> q; q.push(src); while(!q.empty()) int u=q.front(); q.pop(); vis[u]=0; for(int i=0;i<edge[u].size();i++) node x=edge[u][i]; int tmp=d[u]+x.w; if(tmp>d[x.v]) d[x.v]=tmp; if(!vis[x.v]) vis[x.v]=1; q.push(x.v); int main() int m; cin>>m; while(m--) int a,b; scanf("%d%d",&a,&b); a++,b++; edge[a-1].push_back(nodeb,2); edge[a-1].push_back(nodeb-1,1); n=max(n,b); for(int i=0;i<n;i++) edge[i].push_back(nodei+1,0); spfa(0); cout<<d[n];
以上是关于差分约束的主要内容,如果未能解决你的问题,请参考以下文章