bzoj 4326運輸計畫

2021-10-01 01:40:40 字數 2297 閱讀 4126

二分+樹上倍增

先放乙個用倍增法求解樹上距離的方法,我最開始又犯了那個錯誤

這段我最開始上下又寫反了。。。。(記性他就是不進腦子啊。。。再錯我tm是dog)

#include using namespace std;

typedef long long ll;

typedef int lint;

typedef pairpii;

typedef pairpiii;

const lint maxn = 300005;

const lint maxm = 600005;

lint he[maxn],ver[maxm],ne[maxm],tot,cost[maxm],n,m;

void init()

void add( lint x,lint y,lint w )

queueque;

lint d[maxn],f[maxn][21],dis[maxn][21];

lint build()

}if( x == y ) return x;

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

c += dis[x][0] + dis[y][0] ;

return f[x][0];

}vectorve;

lint val[maxn],num,res = 0;

lint dfs( lint x,lint f,lint c )

if( sum == num )

return sum;

}bool judge( lint mid )

dfs( 1,0,0 );

if( ve.back().first - res <= mid ) return true;

else return false;

}int main()

build();

//sort( ve.begin(),ve.end() );

for( lint x,y,i = 1;i <= m;i++ )

sort( ve.begin(),ve.end() );

lint l = 0;

while( l != r-1 )else

}printf("%d", r );

return 0;

}

正常求樹上距離的**

#include using namespace std;

typedef long long ll;

typedef int lint;

typedef pairpii;

typedef pairpiii;

const lint maxn = 300005;

const lint maxm = 600005;

lint he[maxn],ver[maxm],ne[maxm],tot,cost[maxm],n,m;

void init()

void add( lint x,lint y,lint w )

queueque;

lint d[maxn],f[maxn][21],dis[maxn];

lint build()

}if( x == y ) return x;

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

return f[x][0];

}vectorve;

lint val[maxn],num,res = 0;

lint dfs( lint x,lint f,lint c )

if( sum == num )

return sum;

}bool judge( lint mid )

dfs( 1,0,0 );

if( ve.back().first - res <= mid ) return true;

else return false;

}int main()

build();

//sort( ve.begin(),ve.end() );

for( lint x,y,i = 1;i <= m;i++ )

sort( ve.begin(),ve.end() );

lint l = 0;

while( l != r-1 )else

}printf("%d", r );

return 0;

}

Bzoj4326 運輸計畫

time limit 30 sec memory limit 128 mb submit 1091 solved 696 submit status discuss 公元 2044 年,人類進入了宇宙紀元。l 國有 n 個星球,還有 n 1 條雙向航道,每條航道建立在兩個星球之間,這 n 1 條航道...

NOIP2015 運輸計畫(bzoj4326)

time limit 30 sec memory limit 128 mb submit 886 solved 574 submit status discuss 公元 2044 年,人類進入了宇宙紀元。l 國有 n 個星球,還有 n 1 條雙向航道,每條航道建立在兩個星球之間,這 n 1 條航道連...

bzoj4326 NOIP2015 運輸計畫

題目 遙想當年初三參加時,想到了二分,想到了lca,就沒想到如何判斷,然後差20分省一23333.首先答案顯然滿足二分性質,之後判定答案。我們把長度超過k的路徑找到,找出它們公共邊中最長的,把它變為0,看是否可行。如何,找公共邊?樹鏈剖分當然可以,但太複雜了。可以把兩端標記加1,lca標記減2,之後...