題目描述
小 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...