codevs 1242 布局(查分約束 SPFA)

2022-05-15 23:41:26 字數 919 閱讀 2116

/*

查分約束.

給出的約束既有》= 又有<= 這時統一化成一種

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資料...