/*查分約束.
給出的約束既有》= 又有<= 這時統一化成一種
sb-sa>=x 建邊 a到b 權值為x
sb-sa<=y => sa-sb>=-y 建邊 b到a 權值為-y
然後跑最短路 spfa 判斷到不了終點 判斷負環的死迴圈.
*/#include
#include
#include
#include
#define maxn 20010
using
namespace
std;
intn,m1,m2,num,head[maxn],dis[maxn],f[maxn],use[maxn],falg;
struct
node
e[maxn];
intinit()
returnx;}
void add(int
from,int to,int
dis)
void
spfa()
for(int i=head[k];i;i=e[i].pre)
if(dis[e[i].v]>dis[k]+e[i].t)}}
}int
main()
for(int i=1;i<=m2;i++)
memset(dis,
127,sizeof
(dis));
spfa();
if(dis[n]>1000000000)printf("-2"
);
else
if(falg==1)printf("-1"
);
else printf("
%d\n
",dis[n]);
return0;
}
並查集之團夥(codevs)
時間限制 1 s 空間限制 128000 kb 1920年的芝加哥,出現了一群強盜。如果兩個強盜遇上了,那麼他們要麼是朋友,要麼是敵人。而且有一點是肯定的,就是 我朋友的朋友是我的朋友 我敵人的敵人也是我的朋友。兩個強盜是同一團夥的條件是當且僅當他們是朋友。現在給你一些關於強盜們的資訊,問你最多有多...
codevs 星際跳躍並查集的應用
題目描述 description 小 k 又在玩浴火銀河了。不過這次他的目的不是跑運輸賺錢,而 是做任務賺錢。他想知道關於乙個任務的兩個星系是否可以連通。輸入描述 input description 第一行,三個數,x,n,m x 表示出現的星系代號的最大值 n 表示有 n 個星際跳躍門 m 表示有...
codevs1191 數軸染色 並查集
在一條數軸上有n個點,分別是1 n。一開始所有的點都被染成黑色。接著 我們進行m次操作,第i次操作將 li,ri 這些點染成白色。請輸出每個操作執行後 剩餘黑色點的個數。輸入一行為n和m。下面m行每行兩個數li ri 輸出m行,為每次操作後剩餘黑色點的個數。10 3 3 35 7 2 89 63資料...