POJ 3169 Layout 差分約束系統

2021-09-07 12:39:21 字數 910 閱讀 9672

題意:n頭牛排隊吃飯 排編號順序排。大的永遠在小的前面。但牛之間有的關係好。有的差,所以有的牛想離某些牛的距離最遠不超過d 有的必須大於d 給出它們的關係 求第n頭牛跟第一頭的最遠距離。

思路:非常easy的查分約束,公式非常好看出來。求最大值 約束條件轉化為 < ; 所以有s大-s小 <= d1,s大-s小》=d2 把這個條件轉化一下--> s小-s大<=-d2。

#include #include #include #include #include #include #include #include #include #include #include using namespace std;

typedef long long ll;

const int inf=0x3f3f3f3f;

const double pi= acos(-1.0);

const double esp=1e-6;

const int maxn=2010;

int dis[maxn],head[2010];

int cnt;

struct node

edge[1000010];

void add(int u,int v,int w)

int bellman_ford(int n)

}if(!flag) break;

}for(i=0;idis[edge[i].u]+edge[i].w)

return 0;

}return 1;

}int main()

while(md--)

int ans=bellman_ford(n);

if(ans==0)

puts("-1");

else

}return 0;

}

POJ 3169 Layout(差分約束)

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

POJ3169 Layout 差分約束)

題意 一堆牛在一條直線上按編號站隊,在同一位置可以有多頭牛並列站在一起,但編號小的牛所佔的位置不能超過編號大的牛所佔的位置,這裡用d i 表示編 號為i的牛所處的位置,即要滿足d i d i 1 0,同時每兩頭牛之間有以下兩種關係 對於輸入的a b d來說 1 如果是喜歡關係 即需要滿足d b d ...

POJ3169 Layout 差分約束

題目鏈結。分析 對於任意i號奶牛,1 id i 1 d i 0 對於每個好感的描述 i,j,k 假設i j,體現到距離上的要求就是 d j d i k 對於每個反感的描述 i,j,k 假設i j,體現到距離上的要求就是 d j d i k 寫成我們約定的形式 d i d i 1 0 d j d i ...