暴力 LCA JZOJ 1209 拉力賽

2022-04-30 20:06:09 字數 1441 閱讀 2353

description

車展結束後,遊樂園決定舉辦一次盛大的山道拉力賽,平平和韻韻自然也要來參加大賽。

賽場上共有n個連通的計時點,n-1條賽道(構成了一棵樹)。每個計時點的高度都不相同(父結點的高度必然大於子結點),相鄰計時點間由賽道相連。由於馬力不夠,所以韻韻的遙控車只能從高處駛向低處。而且韻韻的車跑完每條賽道都需花費一定的時間。

舉辦方共擬舉辦m個賽段的比賽,每次從第u個計時點到第v個計時點,當然其中有不少比賽韻韻的遙控車是不能參加的(因為要上坡)。平平想知道他能參加多少個賽段的比賽,並且想知道他完成這些賽段的總用時。

input

第一行兩個整數n,m。

接下來n-1行每行3個整數a、b、t。

表示韻韻的遙控車可以花t秒從第a個計時點到第b個計時點。

接下來m行每行2個整數u、v,意義如描述所示。

output

第一行輸出乙個正整數,表示能參加的賽段數。

第二行輸出乙個正整數,表示總用時。

sample input

6 2

1 2 1

2 4 1

2 5 1

5 6 1

1 3 1

2 64 5

sample output

1

2

data constraint

hint

【資料規模和約定】

第乙個計時點的高度是最高的;

u≠v;

對於50%的資料 n≤1000 m≤1000;

對於100%的資料 n≤10000 m≤100000;

答案小於2^64。

分析顯然求路徑長我們搞個樹上字首和即可

然後求能否到達,可用lca(懶得打)用了時間戳法

#include #include 

using

namespace

std;

typedef

long

long

ll;const

int n=1e4+10

;ll a[n];

intst[n],ed[n];

inttm;

struct

edge e[n];

intcnt,list[n];

intn,m;

void add(int u,int

v,ll w)

void dfs(int

u) tm++;

ed[u]=tm;

}int

main()

dfs(1);

ll count=0,ans=0

;

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

printf(

"%lld\n%lld\n

",count,ans);

}

view code

暴力高階,有序二分暴力

include include includeusing namespace std typedef long long ll const int n 1e5 int a n 100 int f int mid,int n printf mid d num d n mid,num return nu...

ACM學習感悟 暴力專場E 暴力dp

problem description 小晴天 我有乙個數列!小晴天 我還要有很多很多的數列!於是小晴天就把這個數列的所有連續子數列寫出來。然後小晴天把每個連續子數列中的最大的數寫出來。那麼,有多少個比k大呢?input 多組資料,首先是乙個正整數t t 100 表示資料的組數 對於每組資料,首先是...

「暴力」注入Explorer

暴力 注入explorer pjf jfpan20000 sina.com 寫點無聊的東西,一段時間blog弄得不成樣子了。向乙個執行中的程序注入自己的 最自然莫過於使用createremotethread,如今遠執行緒注入已經是氾濫成災,同樣的監測遠執行緒注入 防止遠執行緒注入的工具也 舉不勝舉,...