?
题意:输入N, ML, MD, N默示有N个牛按1-N排成一排,ML,默示有ML行,每行输入A, B, D默示A牛和B牛最远间隔为D, MD默示有MD行,每行输入A,B,D默示A牛和B来间隔为D,求满足所有前提的1-N的最大间隔。
比较简单的差分约束,这个周周赛的A题
?
#include
#include
#include
#include
#include
#include
#include
const int N = 210; const int maxn = 1010; const int maxm = 21000; #define FOR(i,a,b) for(int i=a;i
dis[edge[j].u] + edge[j].w) { dis[edge[j].v] = dis[edge[j].u] + edge[j].w; flag = 1; } } if(!flag) break; } if(flag==1) return -1; else if(dis[t]==INF) return -2; else return dis[t]; } int main() { int u,v,w,a,b; while(scanf(%d%d%d,&n,&a,&b)!=EOF) { cnt=0; FOR(i,0,a) { scanf(%d%d%d,&u,&v,&w); add(u,v,w); } FOR(i,0,b) { scanf(%d%d%d,&u,&v,&w); add(v,u,-w); } int ans = Bellman(1,n); cout<
?