越野賽車問題

2022-05-07 19:33:12 字數 2149 閱讀 7387

題目描述

小 h 是一位優秀的越野賽車女選手。現在她準備在 a 山上進行賽車訓練。

a 山上一共有 n 個廣場,編號依次為 1 到 n,這些廣場之間通過 n−1 條雙向車道直接或間接地連線在一起。對於每條車道 i,可以用四個正整數 ui,vi,li,ri 描述,表示車道連線廣場 ui 和 vi,其速度承受區間為 [li,ri],即汽車必須以不小於 li 且不大於 ri 的速度經過車道 i。

小 h 計畫進行 m 次訓練,每次她需要選擇 a 山上的一條簡單路徑,然後在這條路徑上行駛。但小 h 不喜歡改變速度,所以每次訓練時的車速都是固定的。現在小 h 告訴你她在 m 次訓練中計畫使用的車速,請幫助她對於每次訓練,找到一條合法的路徑(車速在所有車道的速度承受區間的交集內),使得路徑上經過的車道數最大。

輸入格式

輸入檔案的第一行包含兩個正整數 n,m,表示廣場數和訓練次數。接下來 n−1 行,每行四個正整數 ui,vi,li,ri(≤n),描述所有車道。最後 m 行,每行乙個正整數 v(≤n),表示小 h 每次訓練時使用的車速。

輸出格式

輸出 m 行,將每次訓練時的行駛路徑經過的最大車道數輸出到檔案中。

輸入輸出樣例

輸入 #1

5 33 2 2 4

1 5 2 5

4 5 2 2

1 2 3 512

3輸出 #102

3資料點 n m 約定

1 =5 =5

2 =20 =20

3 =50000 =50000 li=1,ui=i,vi=i+1

4 =70000 =70000 li=1,ui=i,vi=i+1

5 =50000 =50000 ui=i,vi=i+1

6 =70000 =70000 ui=i,vi=i+1

7 =50000 =50000 li=1

8 =70000 =70000 li=1

9 =50000 =50000

10 =70000 =70000

按長度線段樹分治,可撤銷並查集維護連通塊內直徑。

code:

#includeusing namespace std;

#define ls(p) (p<<1)

#define rs(p) (p<<1|1)

const int maxn=70010;

int n,m;

int ans[maxn];

struct edgee[maxn];

inline int read()

while(c>='0'&&c<='9')res=res*10+c-'0',c=getchar();

return res*f;

}int cnt_edge,tim;

int head[maxn],dep[maxn],pos[maxn],lg[maxn*2];

int f[maxn*2][20];

struct edgee[maxn<<1];

inline void add_edge(int u,int v)

; head[u]=cnt_edge;

}void dfs(int x,int fa)

}inline int lca(int x,int y)

int mid=(l+r)>>1;

if(ql<=mid)insert(ls(p),l,mid,ql,qr,id);

if(qr>mid)insert(rs(p),mid+1,r,ql,qr,id);

}#define pii pair#define mkp make_pair

#define sec second

#define fir first

int top;

int fa[maxn],size[maxn];

pii pt[maxn];

struct node

sta[maxn<<2];

int find(int x)

inline void del(node a)

void solve(int p,int l,int r,int nowans)

if(l==r)ans[l]=nowans;

else

while(top>tmp)del(sta[top]),top--;

}int main()

大連100公里越野賽 心中的痛

編號是0365的那個人是我 比賽已經於上週日結束了,但是一想到我的退賽,心中就痛苦萬分。有人說,退賽比堅持更難,也許真的如此。有人說,過程比結果重要,但是過程也不完美。有人說,距離是有尊嚴的,那肯定是我對它不夠尊重。我於2014年4月份開始跑步,由於經常騎車,耐力比較好,所以一開始就是10公里。跑步...

熊貓熱土 環汶川50公里越野賽賽記

先後去過兩次汶川,一次是2014年12月份參加汶川30公里越野賽,8小時完賽時間,在最後10分鐘完成。這是我參加的第一次越野賽。第二次是2015年3月份的愛江山汶川60公里越野,在55公里處因晚到半小時被關門。兩次都爬了汶川的龍山,並且爬到了龍山頂,海拔3800左右。2015年5月份的汶川山地馬拉松...

F1賽車比賽排名問題(oj

話不多說,直奔主題。1.要解決同乙個人不同場比賽的得分與名次累計 2.要解決兩種排名方式所對應的排序方法 sort函式與cmp定義相配合 include define n 200 using namespace std int score 11 分數的順序 typedef struct info i...