标签:des style class blog code http
Time Limit: 1000MS | Memory Limit: 65536K | |
Total Submissions: 6574 | Accepted: 3177 |
Description
Input
Output
Sample Input
4 2 1 1 3 10 2 4 20 2 3 3
Sample Output
27
Hint
Source
题目大意:
n头奶牛按1到n排好序,md个限制及mt个限制,md行表示奶牛A与奶牛B相差最多D,mt个限制奶牛A与奶牛B相差最少D,问你奶牛1与奶牛n最多相差多少?
解题思路:
限制条件 :
1、相邻奶牛之间,编号大的距离大于编号小的,即 dist[1]-dist[2]<=0,dist[2]-dist[3]<=0,dist[3]-dist[4]<=0。。。。dist[n-1]-dist[n]<=0
2、md个限制 A与奶牛B相差最多D,dist[B]-dist[A]<=D
3、mt个限制奶牛A与奶牛B相差最少D,dist[B]-dist[A]>=D ,即 dist[B]-dist[A]<=D
v-u<=c,即添加 u->v=c 的单向边
有了这些元素,就可以用差分约束来解了,哈哈,是不是很简单!
差分约束学习可以参考:http://www.cnblogs.com/void/archive/2011/08/26/2153928.html
解题代码:
#include <iostream> #include <queue> #include <cstdio> using namespace std; const int maxn=1100; const int maxm=41000; const int inf=0x3f3f3f3f; struct edge{ int u,v,w,next; }e[maxm]; int head[maxn],dist[maxn],cnt; int n; void initial(){ cnt=0; for(int i=0;i<=n;i++) head[i]=-1; } void adde(int u,int v,int w){ e[cnt].u=u,e[cnt].v=v,e[cnt].w=w,e[cnt].next=head[u],head[u]=cnt++; } void input(){ int m,t; scanf("%d%d",&m,&t); while(m-- >0){ int u,v,w; scanf("%d%d%d",&u,&v,&w); adde(u,v,w); } while(t-- >0){ int u,v,w; scanf("%d%d%d",&u,&v,&w); adde(v,u,-w); } for(int i=1;i<=n;i++){ if(i>=2) adde(i,i-1,0); adde(0,i,0); } } bool spfa(int from){ int s=from,num[maxn]; bool visited[maxn]; for(int i=0;i<=n;i++){ num[i]=0; dist[i]=inf; visited[i]=false; } queue <int> q; q.push(s); visited[s]=true; dist[s]=0; while(!q.empty()){ s=q.front(); q.pop(); for(int i=head[s];i!=-1;i=e[i].next){ int d=e[i].v; if(dist[d]>dist[s]+e[i].w){ dist[d]=dist[s]+e[i].w; if(!visited[d]){ visited[d]=true; q.push(d); num[d]++; if(num[d]>n) return false; } } } visited[s]=false; } return true; } void solve(){ if(spfa(0)){ if(spfa(1)){ if(dist[n]==inf) printf("-2\n"); else printf("%d\n",dist[n]); } }else printf("-1\n"); } int main(){ while(scanf("%d",&n)!=EOF){ initial(); input(); solve(); } return 0; }
POJ 3169 Layout (图论-差分约束),布布扣,bubuko.com
标签:des style class blog code http
原文地址:http://blog.csdn.net/a1061747415/article/details/31794623