2019 1 17訓練上午場

2021-09-09 08:28:39 字數 1904 閱讀 5372

codeforces - 1084a 

堅果住在n層的房子裡,每層有ai個人,每個人上下班都需要乘電梯。電梯的第一層是1樓。選擇一層樓x作為這棟樓的長期停靠點,最後電梯都需要回到選擇停靠的樓層。問最少每天電梯要執行多少步。

暴力列舉即可

#include#include#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;

#define inf 0x3f3f3f3f

#define eps 1e-8

#define pi 3.14159265359

typedef long long ll;

const int maxn = 1e3;

ll a[120];

int main()

cout << ans << endl;

return 0;

}

codeforces - 1084b 

給你n個酒桶,乙個s公升酒杯,n個酒桶裡vi公升的酒,問怎麼倒到s公升酒杯中,酒桶中至少還有多少公升的酒。(中文理解題)

多種方法:①二分 ②簡單計算

#include#include#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;

#define inf 0x3f3f3f3f

#define eps 1e-8

#define pi 3.14159265359

typedef long long ll;

const int maxn = 1e3;

ll a[12000];

int main()

if (sum < num)

cout << "-1" << endl;

else

} ans -= 1;

cout << ans << endl;

}

codeforces - 1084d 

堅果在樹上旅遊,每個節點可以加油,起點和終點都可以加,路上的距離會消耗等數量的油,堅果要在樹上選擇一條路徑,使得最後到達終點的油的總量是最大的,路上油不能消耗完,同時也不能反覆走同一條路。可以只選乙個點。

方法:樹形dp

#include const int maxn = int(3e5) + 7;

std::vector> edge[maxn];

long long ans = 0, f[maxn];

int n, w[maxn];

void dfs(int u, int pre) ;

for (auto cur : edge[u])

}ans = std::max();

}int main()

dfs(1, 1);

printf("%lld\n", ans);

return 0;

}

codeforces - 1084e 

在所有長度為n的,字典序介於s和t逐漸的,只有由a,b組成的字串中,選取k個,然後讓它們字首組成的集合最大。其實就是給你乙個有左右邊界且葉子數量必須小於等於k個的字典樹,最多能有多少個節點,模擬一下即可。

題解:

codeforces - 1084f 

一棵n個點的樹,每個點上有乙個數(每個點的上的數互不相同,而且構成乙個0~n-1的排列),要求找到一條路徑,使得路徑的mex最大。

題解:

2019 1 17 訓練部落格

覺得今天老師搞得這個重現賽很好,可以好好的做做以前做過的,檢驗一下自己。今天的比賽,做了五道以前做過 比賽的時候不會的 的題,還行,雖然有時後會粗心,也注意到了以前沒有掌握的點,做了兩個以前每做過的題,一道數學公式題,確實推不出來了,寫出來了乙個遞迴模擬,直接超時,看了資料,也找不到規律。一道最短路...

一場訓練賽

未解決的題 並查集 樹狀陣列。如果不考慮抽出書本的操作,這是一道相對簡單的並查集題目,只需給每本書再開乙個域,記錄其上有多少本書即可。我們發現,當書堆起來的時候,可以按照從上到下的順序給每本書重新編號,如果抽出一本書,則可以在這本書的新編號上標記 1,表示刪除。如果要統計書本 i 設書本 i的新編號...

BSOJ 3799 訓練場 貪心 倍增

3799 模擬試題 訓練場 description 某中學有很多學生社團,其中電競社是最受歡迎的乙個。該社團中總共有n只遊戲戰隊,但是該中學只有乙個遊戲訓練場館,每次只能容納乙隻戰隊訓練。每只戰隊對訓練時間都有一定的要求,比如甲戰隊想要在a到b這段時間訓練,乙戰隊想要在c到d這段時間訓練,作為訓練場...