雜談
5題
不換成int是一位也不舍棄的
6題
分類討論+組合數學
9題
分類談論+一點點耐心
11題
極限情況
\(A_1<B_1<A_2<b_2\)······
14題
一點小小的計算·····
16題
最后兩問對應的就是單調第增和遞減的情況
第五問似乎合並的順序不影響答案。
17題
朴素的並查集復雜度是\(n^2\)
18題
任務:計算s最多可以刪去幾個字符,使t仍為s的子序列
suf,pre存的是從后往前和從前往后匹配最遠可行的位置
(1)錯誤
顯然suf[i+1]其實就是沒到if時的j
j唯一的變化就是--,所以說小於等於成立
(2)錯誤 兩個都是空串時為0
(3)錯誤 如果沒有任何公共子串,輸出就是一個負數
(4)錯誤 反例 a和b相等時
(5) 1因為怎么說,只要t不是s子序列就行,但是s不能輸入空啊
(6) 12輸出2表示刪去兩個還是,那么最小肯定就是t加上兩個字符
19
unlock[i]表示i還有多少未解開限制
1,2 就是解開一門課需要有足夠的point和可解鎖(==0)
已解鎖的定位-1
3問就是得分
4問減少限制
20
博弈論可知
記f[i]表示剩下i個石子時先手能不能必勝
顯然只有所有的f[i-b[i]]先手必敗,才會必勝
本題中b[i]小於64,那么用status記錄i個石子時,i-1,i-2,1····i-64能否必勝
若為一則先手必勝
1 初始化,一開始只有0個石子,那么先手必敗,所以第一位為0,剩下的就是1了
2 畢竟隨着石子增多,可以由上面的轉移過來,所以只在相等的時候轉移
3trans記錄的是可行的轉移方式,所以說|一下(這與b[i]范圍有很大關系)
4后手必敗才會先手必勝,所以說需要~,只有必勝且存在這個轉移方式(trans)才能先手必勝,所以&
5考慮一下status是干啥的,那么多了一個石子就左移一位,然后異或一下,重疊的是肯定不行的(怎么可能呢,多了一個石子還能取到)