P1967 貨車運輸

2022-06-03 21:06:11 字數 1222 閱讀 1575

emmmm一開始是想到網路流來著???(最大流嘛233)

然後發現自己好像已經差不多忘完了???

於是開啟題解,ctrl+f,輸入網路流,好像沒有題解,於是就老老實實想正解去了。

正解:多組詢問,想想網路流也要t(ek本來就慢,其它就不說了),所以一定是還有更簡單的方法的!!!

對於每乙個點(或者說路徑),只有最小的那個邊才對答案有影響(不是嗎?)

慢著!這不是.....最小生成樹?

於是就建最小生成樹然後lca。。。。。

於是愉快地選擇kruskal和倍增lca。

於是這題就沒什麼了

**:

#includeusing

namespace

std;

const

int maxn=500005

;int

m,n,fat[maxn];

struct

node

a[maxn];

struct

edge

e[maxn

<<1

];int

head[maxn],cnt,vis[maxn];

inline

void addedge(int

from,int to,int

dis)

bool

cmp(node x,node y)

int find(int

x)void

kruskal()

}}int dep[maxn],f[25][maxn],w[25

][maxn];

void dfs(int u,int deep)//

預處理lca

}int lca(int a,int b)//

lca }

if(a==b)

return

ans;

for(int i=20;i>=0;i--)

}ans=min(ans,min(w[0][a],w[0

][b]));

//printf("%d ",ans);

return

ans;

}int

main()

for(int i=1;(1

}intq;

scanf("%d

",&q);

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

return0;

}

(完)

P1967 貨車運輸

題目 題目描述 aa國有n n座城市,編號從 1 1到 nn,城市之間有 mm 條雙向道路。每一條道路對車輛都有重量限制,簡稱限重。現在有 qq 輛貨車在運輸貨物,司機們想知道每輛車在不超過車輛限重的情況下,最多能運多重的貨物。輸入格式 第一行有兩個用乙個空格隔開的整數 n,mn,m,表示 aa 國...

P1967 貨車運輸

a 國有 n 座城市,編號從 1 到 n 城市之間有 m 條雙向道路。每一條道路對車輛都有重量限制,簡稱限重。現在有 q 輛貨車在運輸貨物,司機們想知道每輛車在不超過車輛限重的情況下,最多能運多重的貨物。第一行有兩個用乙個空格隔開的整數 n m 表示 a 國有 n 座城市和 m 條道路。接下來 m ...

P1967 貨車運輸

a 國有 n 座城市,編號從 1 到 n,城市之間有 m 條雙向道路。每一條道路對車輛都有重量限制,簡稱限重。現在有 q 輛貨車在運輸貨物,司機們想知道每輛車在不超過車輛限重的情況下,最多能運多重的貨物。第一行有兩個用乙個空格隔開的整數 n,m,表示 a 國有 n 座城市和 m 條道 路。接下來 m...