位元組跳動冬令營2018

2021-09-13 17:54:09 字數 1607 閱讀 7495

給定一棵有根樹,邊有邊權,兩個人輪流操作,每次可以把一條邊的權值減少一,權值變為 0 表示把子樹砍掉,問先手第一輪操作哪些邊使得自己必勝。n≤1

06

n\leq 10^6

n≤10

6之前的部落格,發現這道題本質上是圖的刪邊遊戲。把環縮掉,就變成了樹上刪邊遊戲了。結論是:葉子的 sg 為 0,非葉子的 sg 為所有葉子的 sg+1 的異或。求方案就是求刪掉哪些邊使得根的 sg 為 0。dfs 一遍即可。

有 n 個集合成乙個環,每個集合大小為 m,要求 ∣si

−sj∣

≥l

i|s_i-s_j|\geq l_i

∣si​−s

j​∣≥

li​,要求最小化 ∣⋃s

i∣

|\bigcup s_i|

∣⋃si​∣

。首先,如果是一排,答案就是 max⁡(

m+li

)\max (m+l_i)

max(m+

li​)

。如果是乙個環,就要讓最後乙個集合和第乙個集合的差盡可能大。我們二分乙個答案,然後嘗試 dp 這個東西。設 fi,

j,0/

1f_

fi,j,0

/1​ 表示第 i 個集合與第乙個集合的交 最多/最少 是多少。如果我們想讓 i 的交最多,那麼 i-1 的交一定要盡量少,反之亦然。

#include#define ll long long

#define db double

using namespace std;

const int n=1000010;

ll f[n][2],l[n];int n;

int read()

while(isdigit(c)) x=x*10+c-'0',c=getchar();

return x*flag;

}bool check(ll lim,ll m)

return m-f[n-1][0]>=l[0];

}int main()

ll l=m,r=m+2*mx,ans=-1;

while(l<=r)

assert(ans!=-1);

cout《有乙個由 w 組成的無限長度的字串 wwr

wwr.

..

ww^rww^r...

wwrwwr

...,w

rw^r

wr表示把 w 翻轉。從這個無限長的字串裡截乙個子串 s(長度嚴格大於 w),滿足 s 包含 w 或者 w 的反串作為子串。現在給出 s,求有多少子區間滿足這個區間的字串可能是 w。字串長度小於等於1e6。

n 個點 m 條邊的無向圖,有 k 個加速點。你一開始速度為 1,經過乙個加速點速度會乘2。可以經過乙個點/邊 多次,注意連續經過的兩個加速點不能是同乙個。求從 1 到 n 的最短時間。k≤n

≤100,m

≤8000

k\leq n\leq 100,m\leq 8000

k≤n≤10

0,m≤

8000

。設 fi,

jf_

fi,j

​ 表示從 1 到 i 經過 j 個加速點的最短時間,列舉經過的最後乙個加速點是什麼,預處理兩點最短路即可轉移。

2018北京冬令營測試

題面戳我!我們發現 所有數加起來等於線索上的權值 這個東西可以用流量平衡來解決,所以可以跑上下界費用流。建圖就是,把上下線索放左邊,左右線索放右邊,源點向所有上下線索連乙個上下界均為對應權值的邊,同理左右線索向匯點連乙個上下界均為對應權值的邊 對於空格就是把左邊的乙個節點和右邊的乙個節點連起來,上下...

道路重建 2018山東冬令營

時間限制 1 sec 記憶體限制 128 mb 提交 67 解決 24 提交 狀態 討論版 小l的家鄉最近遭遇了一場洪水,城市變得面目全非,道路也都被沖毀了。生活還要繼續,於是市 決定重建城市中的道路。在洪水到來前,城市中共有n個區域和m條連線這些區域的雙向道路,道路連通了所有的區域,為了方便人們的...

2015 2 1冬令營日誌

今天的任務 1.寫一篇部落格。2.寫乙個週報。3.聽張老師的講座,感覺還是獲益匪淺。他說我們學校的軟體工程專業現況是有實力與清華北大媲美的,這讓我感到十分榮幸,雖然沒有親自去過清華北大,但這兩所學校的名氣確實是如雷貫耳的,瞬間覺得我還是走上了乙個高富帥的專業。但是,以後的事情還是需要我繼續努力堅持才...