281 排隊布局

2021-09-27 08:14:19 字數 1611 閱讀 1223

#281. 排隊布局

描述提交

自定義測試12

3【題目描述】:

當排隊等候餵食時,奶牛喜歡和它們的朋友靠近些。fj 有n頭奶牛,編號從1到n,沿一條直線站著等候餵食。奶牛排在隊伍中的順序和它們的編號是相同的。因為奶牛相當苗條,所以可能有兩頭或者更多奶牛站在同一位置上。如果我們想象奶牛是站在一條數軸上的話,允許有兩頭或更多奶牛擁有相同的橫座標。一些奶牛相互間存有好感,它們希望兩者之間的距離不超過乙個給定的數l。另一方面,一些奶牛相互間非常反感,它們希望兩者間的距離不小於乙個給定的數d。給出ml條關於兩頭奶牛間有好感的描述,再給出md條關於兩頭奶牛間存有反感的描述。

你的工作是:如果不存在滿足要求的方案,輸出-1;如果1號奶牛和n號奶牛間的距離可以任意大,輸出-2;否則,計算出在滿足所有要求的情況下,1號奶牛和n號奶牛間可能的最大距離。

【輸入描述】:

第一行讀人三個整數n,ml,md。

接下去ml行每行有三個正整數a,b,d(1<=a接下去md行每行有三個正整數a,b,d(1<=a如果不存在滿足要求的方案,輸出-1;如果1號奶牛和n號奶牛間的距離可以任意大,輸出-2;否則,計算出在滿足所有要求的情況下,1號奶牛和n號奶牛間可能的最大距離。

【樣例輸入】:

4 2 1

1 3 10

2 4 20

2 3 3

【樣例輸出】:

【樣例說明】:

四隻牛分別在0,7,10,27。

【時間限制、資料範圍及描述】:

對於 30%的資料:2<=n<=50;1<=ml+md<=300;

對於 50%的資料:2<=n<=200;1<=ml+md<=1000;

對於100%的資料:2<=n<=1000;1<=ml+md<=10,000;1<=l,d<=1,000,000

差分約束模板題;

可我就是不會。。。。。。。。

#include

#include

#include

#include

#include

#include

#define m 25000

#define n 1050

using

namespace std;

int e=

1,head[n]

;struct edgeed[m]

;void

add(

int u,

int v,

int w)

int dis[n]

,bo[n]

,tim[n]

,n,m1,m2;

intspfa()

}}}if

(dis[n]

==dis[0]

)return-2

;return dis[n];}

intmain()

for(

int i=

1;i<=m2;i++

)for

(int i=

1;i)add

(i+1

,i,0);

printf

("%d\n"

,spfa()

);return0;

}

281 排隊布局

當排隊等候餵食時,奶牛喜歡和它們的朋友靠近些。fj 有n頭奶牛,編號從1到n,沿一條直線站著等候餵食。奶牛排在隊伍中的順序和它們的編號是相同的。因為奶牛相當苗條,所以可能有兩頭或者更多奶牛站在同一位置上。如果我們想象奶牛是站在一條數軸上的話,允許有兩頭或更多奶牛擁有相同的橫座標。一些奶牛相互間存有好...

UOJ 281 排隊布局

題目描述 當排隊等候餵食時,奶牛喜歡和它們的朋友靠近些。fj 有n頭奶牛,編號從1到n,沿一條直線站著等候餵食。奶牛排在隊伍中的順序和它們的編號是相同的。因為奶牛相當苗條,所以可能有兩頭或者更多奶牛站在同一位置上。如果我們想象奶牛是站在一條數軸上的話,允許有兩頭或更多奶牛擁有相同的橫座標。一些奶牛相...

AcWing 1170 排隊布局

本題同樣是差分約束的問題,要求 1 到 n 之間可能的最大的距離,這使得我們更加深刻的理解了差分約束的思想。在 acwing 1169 糖果裡,仔細的講解了差分約束的基本思想,以及求不等式組的最大解需要求最短路,求最小解需要求最長路,這裡不等式解的最大最小都是相對而言的。比如 a 2 a 1 1,a...