洛谷P1119 災後重建 Floyd 離線

2022-05-20 02:48:11 字數 2154 閱讀 8680

真是有故事的一題呢

半年前在寧夏做過一道類似的題,當時因為我的愚昧痛失了金牌。

要是現在去肯定穩穩的過,真是生不逢時。

簡單的來說就是按照時間順序一邊建邊一邊查詢,對於每次建邊只要用floyd加中轉點即可。

#include #include 

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

using

namespace

std;

inline

int read()

#define for(i, x, y) for(int i=x;i<=y;i++)

#define _for(i, x, y) for(int i=x;i>=y;i--)

#define mem(f, x) memset(f,x,sizeof(f))

#define sca(x) scanf("%d", &x)

#define sca2(x,y) scanf("%d%d",&x,&y)

#define sca3(x,y,z) scanf("%d%d%d",&x,&y,&z)

#define scl(x) scanf("%lld",&x);

#define pri(x) printf("%d\n", x)

#define prl(x) printf("%lld\n",x);

#define clr(u) for(int i=0;i<=n;i++)u[i].clear();

#define ll long long

#define ull unsigned long long

#define mp make_pair

#define pii pair#define pil pair#define pll pair#define pb push_back

#define fi first

#define se second typedef vector

vi;const

double eps = 1e-9

;const

int maxn = 210

;const

int inf = 0x3f3f3f3f

;const

int mod = 1e9 + 7

; const

int maxm = 5e4 + 10

;int

n,m,q;

pair

p[maxn];

intdp[maxn][maxn];

struct

queryquery[maxm];

bool

vis[maxn];

bool

cmp(query a,query b)

void add(int

x) }

}int

main()

mem(dp,

0x3f

);

for(int i = 0; i <= n - 1; i ++) dp[i][i] = 0

;

for(int i = 1; i <= m ; i ++)

sort(p ,p +n);

sca(q);

int now = 0,cnt = 0

;

while(cnt < n && p[cnt].first == 0

)

for(int i = 1; i <= q; i ++)

if(!vis[query[i].x] || !vis[query[i].y] || dp[query[i].x][query[i].y] == inf) pri(-1

);

else

pri(dp[query[i].x][query[i].y]);

}return0;

}

洛谷 P1119 災後重建

題目背景 b地區在 過後,所有村莊都造成了一定的損毀,而這場 卻沒對公路造成什麼影響。但是在村莊重建好之前,所有與未重建完成的村莊的公路均無法通車。換句話說,只有連線著兩個重建完成的村莊的公路才能通車,只能到達重建完成的村莊。題目描述 給出b地區的村莊數n,村莊編號從0到n 1,和所有m條公路的長度...

洛谷 P1119 災後重建

題目背景 b地區在 過後,所有村莊都造成了一定的損毀,而這場 卻沒對公路造成什麼影響。但是在村莊重建好之前,所有與未重建完成的村莊的公路均無法通車。換句話說,只有連線著兩個重建完成的村莊的公路才能通車,只能到達重建完成的村莊。題目描述 給出b地區的村莊數n,村莊編號從0到n 1,和所有m條公路的長度...

洛谷 P1119 災後重建

題目背景 b地區在 過後,所有村莊都造成了一定的損毀,而這場 卻沒對公路造成什麼影響。但是在村莊重建好之前,所有與未重建完成的村莊的公路均無法通車。換句話說,只有連線著兩個重建完成的村莊的公路才能通車,只能到達重建完成的村莊。題目描述 給出b地區的村莊數n,村莊編號從0到n 1,和所有m條公路的長度...