标签:col type 差分约束 typedef ace space span algo can
例题: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(node{b,2}); edge[a-1].push_back(node{b-1,1}); n=max(n,b); } for(int i=0;i<n;i++) edge[i].push_back(node{i+1,0}); spfa(0); cout<<d[n]; }
标签:col type 差分约束 typedef ace space span algo can
原文地址:https://www.cnblogs.com/hanasaki/p/11053093.html