華中科技大學程式設計邀請賽網路賽 F War

2021-09-18 04:08:46 字數 2355 閱讀 1138

題意給出乙個n個點的樹,詢問編號在乙個區間內的點到給定點的最近距離。

題解分塊暴力求解,整塊中用spfa預處理,零散的用lca求解。

首先根據記憶體限制,計算出開啟能開200∗n

200*n

200∗

n的陣列,所以,每500

50050

0個點為一塊,在塊內跑一邊spfa,求出塊內的點到其他點的最短路。

詢問區間[l,

r][l,r]

[l,r

],分為多個整塊的和多個零散的在塊以外的,整塊的就用之前spfa處理的求解,零散的就分別於目標點做lca,求最小值即可。

需要注意的是,因為要大量求解lca,必須使用rmq的方法,才能o(1

)o(1)

o(1)

求解。**

#include

#define n 100510

#define inf 0x3f3f3f3f

#define eps 1e-10

// #define pi 3.141592653589793

// #define p 1000000007

#define ll long long

#define pb push_back

#define fi first

#define se second

#define cl clear

#define si size

#define lb lower_bound

#define ub upper_bound

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

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

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

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

using

namespace std;

#include

#include

#include

#include

using

namespace __gnu_pbds;

typedef pair<

int,

int> pi;

typedef pair<

int,pi> pp;

typedef __gnu_pbds::priority_queue

> heap;

int n,m;

int l[n]

,st[n<<1]

,dp[22]

[n<<1]

,d[n]

,cnt;

vectora[n]

;void

lable

(int x,

int ffa,

int p)

}int lg[n<<1]

;void

preprocess()

}inline

intquery

(int p,

int q)

inline

intask

(int x,

int y)

int sz=

500,id[

205]

[n],q[n<<2]

;void

spfa

(int x,

int* d)

bt[x]=0

;}}int

main()

lable(1

,-1,

0);preprocess()

;for

(int i=

0;i<=n;i+

=sz)

spfa

(i,id[i/

500]);

while

(m--

)printf

("%d\n"

,ans);}

}

lca的rmq方法模板
void

lable

(int x,

int ffa,

int p)

}void

preprocess()

}int

query

(int p,

int q)

華中科技大學 找位置

題目描述 對給定的乙個字串,找出有重複的字元,並給出其位置,如 abcaaab12ab12 輸出 a,1 a,4 a,5 a,10,b,2 b,11,1,8 1,12,2,9 2,13。輸入描述 輸入包括乙個由字母和數字組成的字串,其長度不超過100。輸出描述 可能有多組測試資料,對於每組資料,按照...

華中科技大學複試 對稱矩陣

題目描述 輸入乙個n維矩陣,判斷是否對稱。輸入描述 輸入第一行包括乙個數 n 1 n 100 表示矩陣的維數。接下來的n行,每行包括n個數,表示n n矩陣的元素。輸出描述 可能有多組測試資料,對於每組資料,輸出 yes 表示矩陣為對稱矩陣。輸出 no 表示矩陣不是對稱矩陣。示例輸入4 16 19 1...

華中科技大學複試 找位置

題目描述 對給定的乙個字串,找出有重複的字元,並給出其位置,如 abcaaab12ab12 輸出 a,1 a,4 a,5 a,10,b,2 b,11,1,8 1,12,2,9 2,13。輸入描述 輸入包括乙個由字母和數字組成的字串,其長度不超過100。輸出描述 可能有多組測試資料,對於每組資料,按照...