bzoj 1917 Ctsc2010 星際旅行

2022-05-31 06:30:10 字數 1243 閱讀 4635

公元2023年,地球聯盟已經攻占了銀河系內的n個星球,出於資金的考慮,**僅僅在星球間建立了n-1條雙向時空隧道保證任意兩個星球之間互相可達。出於管理上的考慮,第i個星球的行政長官要求每個公民在一年內不得從該星球利用時空隧道次數超過hi次(這一統計是基於離開次數統計的,如果你已經使用從該星球離開過hi次,那麼這一年內你就不能再使用時空隧道離開這個星球了)。louis paosen是乙個星際旅行家,他希望能使用盡量多次的時空隧道,但又不希望最終被迫定居的星球條件太過惡劣。所以他希望能知道對於每個星球i,若從0號星球出發,最終以i號星球為終點,這樣的星際旅行途中最多可以使用多少次時空隧道。

正解:貪心

由於題目給定 \(h[i]>du[i]\),所以至少可以遍歷所有的邊乙個來回,然後可以證明最優情況肯定是遍歷的所有邊的,所以我們先遍歷所有邊一次,然後考慮剩餘的 \(h[i]\),現在任意兩點間已經連通,我們只需任意花費流量使得答案最大,所以我們把能花的都花掉,且這些花費可以算進所有點的貢獻,因為已經連通.

現在的樹已經成為了不存在邊 \((x,y)\),\(x>0,y>0\),\(x,y\)只有乙個可以大於0,我們只需考慮調整這些流量:

考慮現在在 \(x\),子節點為 \(y\).

1.當前節點\(x\)的流量》0,那麼可以直接走到\(y\),使得 \(y\) 答案加\(1\)

2.\(y\) 的某個子節點 \(u\) 的流量大於0,那麼可以把 \(y->x\)的流量退掉,換成 \(y->u,u->y\),使得答案加\(1\)

3.若上述情況都不存在,那麼 \(y->x\) 這條邊流量必須退掉,因為到達 \(x\) 之後就無法返回 \(y\)了

#include #include #include #include #include #include using namespace std;

const int n=50005;

int head[n],n,num=0,val[n],nxt[n<<1],to[n<<1],tot=0,r[n];

void link(int x,int y)

void dfs1(int x,int last)

}int ans[n];

void dfs(int x,int last)

}void work()

dfs1(1,1);dfs(1,1);

for(int i=1;i<=n;i++)printf("%d\n",ans[i]);

}int main()

BZOJ 1919 Ctsc2010 效能優化

題目 題意 給出兩個長度為 n 的整數序列a 0.n 1 b 0.n 1 和非負整數 c 對於兩個長度為 n的整數序列,定義 運算,結果為乙個長度為 n的整數序列,例如f g h 則有h k i j k modn f i g j 求a b b b 每一位模 n 1 的值,其中有 c 個 運算,n 1...

bzoj 2306 Ctsc2011 幸福路徑

有向圖 g有n個頂點 1,2,n,點i 的權值為 w i 現在有乙隻螞蟻,從 給定的起點 v0出發,沿著圖 g 的邊爬行。開始時,它的體力為 1。每爬過一條邊,它的體力都 p,而螞蟻爬到某個頂點時的幸福度,是它當時的體力與該點權值的乘積。求最大幸福值。因為當體力很小後,對答案就沒什麼影響力,所以用乙...

BZOJ 5343 Ctsc2018 混合果汁

bzoj 5343 ctsc2018 混合果汁 二分答案 主席樹 題意 給出每個果汁的 p,美味度d,最多能放的體積l。定義果汁混合後的美味度為果汁的美味度的最小值。m次詢問,要求花費不大於g,總體積不小於l,求最大美味度,如果不能滿足,輸出 1。二分答案。然後轉變為求 前l小的果汁之和。類似任務查...