博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[Usaco2005 dec]Layout
阅读量:4702 次
发布时间:2019-06-09

本文共 1765 字,大约阅读时间需要 5 分钟。

题目描述

当排队等候喂食时,奶牛喜欢和它们的朋友站得靠近些。FJ有N(2<=N<=1000)头奶牛,编号从1到N,沿一条直线站着等候喂食。奶牛排在队伍中的顺序和它们的编号是相同的。因为奶牛相当苗条,所以可能有两头或者更多奶牛站在同一位置上。即使说,如果我们想象奶牛是站在一条数轴上的话,允许有两头或更多奶牛拥有相同的横坐标。

一些奶牛相互间存有好感,它们希望两者之间的距离不超过一个给定的数L。另一方面,一些奶牛相互间非常反感,它们希望两者间的距离不小于一个给定的数D。给出ML条关于两头奶牛间有好感的描述,再给出MD条关于两头奶牛间存有反感的描述。(1<=ML,MD<=10000,1<=L,D<=1000000)
你的工作是:如果不存在满足要求的方案,输出-1;如果1号奶牛和N号奶牛间的距离可以任意大,输出-2;否则,计算出在满足所有要求的情况下,1号奶牛和N号奶牛间可能的最大距离。

输入

第一行:三个空间分隔的整数:N,ML,和MD
第二行至第ML+1行:每行包含三个空间分隔的正整数:A,B和D,其中1<= A<=N。表示牛A和牛B必须在距离D以内。第ML+2至第ML+MD+1行:每行包含三个空间分隔的正整数:A,B和D,其中1 <= A<=N。表示牛A和牛B必须在距离D以上。

 

输出

输出仅有一个整数。如果不可能安排奶牛的布局,输出-1。如果奶牛1和奶牛N可以相距任意距离,输出-2。否则输出奶牛1和奶牛N之间的最大距离。

样例输入

4 2 11 3 102 4 202 3 3

样例输出

27 差分约束,由于题目求最大值,所以最短路,把约束条件化成x-y<=b的形式
对于距离条件:d[i+1]>=d[i]        =>       d[i]-d[i+1]<=0      =>     连一条从i+1到i,权值为0的边 对于喜欢条件:d[x]-d[y]<=L(x>y)   =>       连一条从y到x,权值为L的边 对于讨厌条件:d[x]-d[y]>=L(x>y)   =>       d[y]-d[x]<=-L       =>     连一条从x到y,权值为-L的边
存在负环,输出-1,从1号点走不到n号点,输出-2 把一号奶牛看成在原点,答案为d[n]
#include
#include
#include
using namespace std; int f,n,ml,md,nxt[100000],to[100000],c[100000],h[1111],que[10000000],H,T,k,d[1111]; bool inq[1111];int cnt[1111]; void ins(int u,int v,int t){nxt[++k]=h[u];to[k]=v;c[k]=t;h[u]=k;} int spfa() { memset(inq,0,sizeof(inq));memset(cnt,0,sizeof(cnt));memset(d,127,sizeof(d));int INF=d[1]; d[1]=0;inq[1]=1;cnt[1]++;H=0;T=0;que[T++]=1; while(H
d[u]+t) { d[v]=d[u]+t;cnt[v]++; if(cnt[v]>n)return -1; if(!inq[v])inq[v]=1,que[T++]=v; } } } if(d[n]==INF)return -2; return d[n]; } int main() { scanf("%d%d%d",&n,&ml,&md); for(int i=1;i
 
 

转载于:https://www.cnblogs.com/lher/p/7136039.html

你可能感兴趣的文章
守护进程
查看>>
初入linux系统
查看>>
机器学习预测机动车摇号:神秘的第七位
查看>>
linux 下启动tomcat 提示-bash: ./startup.sh: Permission denied 原来...
查看>>
洛谷P1041 传染病控制
查看>>
Android:interpolator用法
查看>>
集合和函数
查看>>
thinkPHP5 验证码
查看>>
『摄影欣赏』25幅记录欢乐瞬间的精美照片【组图】
查看>>
一款效果精致的 jQuery 多层滑出菜单插件
查看>>
推荐10个 CSS3 制作的创意下拉菜单效果
查看>>
dubbo搭建
查看>>
【最大费用最大流】【Codeforces】164C - Machine Programming
查看>>
TCP系列52—拥塞控制—15、前向重传与RACK重传拥塞控制处理对比
查看>>
SQL Server手工插入标识列
查看>>
[每日一题] 11gOCP 1z0-052 :2013-09-15 Enterprise Manager Support Workbench..................B9
查看>>
为什么VS提示SurfFeatureDetector不是cv的成员函数
查看>>
Linux内核二层数据包接收流程
查看>>
别名、数组
查看>>
leetcode 9 Palindrome Number 回文数
查看>>