Codeforces 刷題記錄(已停更)


Codeforces 每日刷題記錄 (已停更)


打‘+’是一些有啟發意義的題目,部分附上一句話題解,每日更新3題,大部分題目較水。


Day ID Problem Tutorial Note
1 1 +CF1073E 狀壓,數位dp,官方題解std騷操作
\(~\) 2 CF1072A
\(~\) 3 CF1072B
2 4 CF1072C
\(~\) 5 CF1068C 讀題惡心
\(~\) 6 CF1073D 猜復雜度,模擬
3 7 CF1088A
\(~\) 8 CF1088B
\(~\) 9 CF1088C 構造思想
4 10 CF1066A
\(~\) 11 CF1066B
\(~\) 12 CF1066C
5 13 +CF1088E 推結論,tree dp,貪心
\(~\) 14 CF1065A
\(~\) 15 CF1065B
6 16 CF1064A
\(~\) 17 CF1064B
\(~\) 18 CF1064C 結論
7 19 gym102028F 焦作F,模擬
\(~\) 20 CF1090A
\(~\) 21 CF1090B 模擬
8 22 +CF1090D 構造
\(~\) 23 +CF1090J kmp的fail樹,計數,推導,樹dfs,HDU5129
\(~\) 24 CF1065C
9 25 CF1084A
\(~\) 26 CF1084B 讀題。
\(~\) 27 CF1084C
10 28 CF1059A
\(~\) 29 CF1059B
\(~\) 30 +CF1059C 貪心構造思想
11 31 +CF1083A tree dp,推結論
\(~\) 32 CF1060A
\(~\) 33 CF1060B
12 34 +CF1083E 斜率優化dp
\(~\) 35 CF1060C 任意一個矩陣的值,相當於a的一段區間和乘b的一段區間和
\(~\) 36 CF1060D 二分圖匹配,貪心
13 37 CF1093A
\(~\) 38 CF1093B
\(~\) 39 CF1093C
\(~\) 40 CF1093D
\(~\) 41 +CF1093E 帶修改二維數點,bit套pbds / cdq / 卡內存
14 42 CF1051B
\(~\) 43 CF1051C
\(~\) 44 CF1051D
15 45 +CF1089A dp,背包,輸出方案
\(~\) 46 +CF1093G 觀察可得兩點之間的k維曼哈頓距離,可以通過枚舉每一維的正負表示,線段數維護2^k種情況
\(~\) 47 CF1081A
16 48 CF1092A
\(~\) 49 CF1092B
\(~\) 50 CF1092C
17 51 CF1081B
\(~\) 52 CF1081C
\(~\) 53 CF1081D
\(~\) 55 +CF1092D1 貪心
18 54 CF1081E
\(~\) 56 +CF1092D2 貪心+線段樹模擬+卡時
\(~\) 57 +CF1092F tree dp
19 58 +CF1093F 計數dp+容斥 dp[i][j]表示1到i都合法,且第i個數為j的方案數
\(~\) 59 CF1033A
\(~\) 60 CF1033B
20 61 CF1058A
\(~\) 62 CF1058B
\(~\) 63 CF1058C
21 64 +CF1092E 貪心構造,將每顆樹的中心(到最遠點的距離最小)連成菊花圖,中間是直徑最大的樹
\(~\) 65 CF1085A
\(~\) 66 CF1085B
\(~\) 67 CF1085C
\(~\) 68 CF1085D
22 69 CF1047A
\(~\) 70 CF1047B
\(~\) 71 CF1047C
23 72 +CF1087E 搜索,邊界處理,直接模擬難以實現時,要想到搜索
\(~\) 73 CF1041A
\(~\) 74 CF1041B
\(~\) 75 CF1041C
\(~\) 76 CF1041D 雙指針,注意更新邊界
24 77 CF1036A
\(~\) 78 CF1040A
\(~\) 79 CF1040B
25 80 +CF452E 插入特殊字符后拼成一個串建后綴自動機,\(right[i][id]\)表示狀態i,代表的子串中,出現在\(id\)串的次數
\(~\) 81 CF474A
\(~\) 82 CF474B
26 83 CF1095A
\(~\) 84 CF1095B
\(~\) 85 CF1095C
\(~\) 86 CF1095D n = 3時,要特判
27 87 CF469A
\(~\) 88 CF467A 下一秒cf崩了,這幾天真的頹
28 89 CF1091A
\(~\) 90 CF1091B
\(~\) 91 CF1091C
\(~\) 92 CF1091D
29 93 +CF528D 字符串\(FFT\),對 於\(s\)的每個位置\(i\)的每種字符計算它的匹配數,四種字符的和如果為\(m\)則位置\(i\)可以匹配
\(~\) 94 +CF1091E 題解
\(~\) 95 CF109A 完全背包
30 96 CF1095E 左括號看作1,右括號看作-1,線段樹維護前綴和
\(~\) 97 CF1096A
\(~\) 98 CF1096B
\(~\) 99 CF1096C 多邊形的外接圓
31 100 CF1097A 病了幾天不會做題了
\(~\) 1 CF1097B
\(~\) 2 CF1097C
\(~\) 3 +CF1097D 期望遞推式$E(x,k) = \frac{1}{\sigma_0(x)} \sum_{d x}E(d,k-1)\(,\)E(x,k)\(是關於\)x\(的積性函數,因此對預處理\)E(p^m,k)$合並即可
32 4 CF1099A
\(~\) 5 CF1099B 讀題
\(~\) 6 CF1099C 讀題
33 7 CF1038A
\(~\) 8 CF1038B
\(~\) 9 CF1038C
34 10 CF1027A
\(~\) 11 CF1027B
\(~\) 12 CF1027C 貪心
35 13 CF950A
\(~\) 14 CF950B
36 15 CF950C 貪心,線段樹
37 16 CF954A
38 17 CF1101A
39 18 CF1101B
40 19 CF1100A
\(~\) 20 CF1100B
\(~\) 21 CF1100C
\(~\) 22 +CF1100E 二分,拓撲排序。一開始發現幾個DAG並起來一定可以無環,於是寫了二分+拓撲排序判環,輸出方案想了一個奇怪的做法,把圖按編號分為幾個弱聯通分量,之后討論,反向的邊是在兩個分量之間,還是在一個分量內。。然而直接把圖拓撲排序完,然后按拓撲序連邊不就行了嘛。。。awsl 這段時間事兒太多了,基本沒做題。。放假!
41 23 CF1101C
42 24 CF1102A
\(~\) 25 CF1102B
\(~\) 26 CF1102C
43 27 +CF1100F 異或線性基,zkw線段樹,卡常,這個做法很好想,但是卡常之路很艱辛ac代碼
44 28 CF1009A
\(~\) 29 CF1009B 0和2相對位置不變,1可以任意移動
45 30 +CF1101D 類似dfs求樹的直徑
\(~\) 31 CF1101E
\(~\) 32 CF998A
\(~\) 33 CF998B
\(~\) 34 CF998C
46 35 CF1105A
\(~\) 36 CF1105B
\(~\) 37 CF1105C
\(~\) 38 CF1105D
\(~\) 39 +CF1105E 最大獨立集,狀壓,折半。參考了評論區有人提到的做法,把點分成兩份,分別處理他們每種情況下的最大獨集,最后合並答案,具體見代碼
\(~\) 40 CF1104A
\(~\) 41 CF1104B
\(~\) 42 +CF1104C 精准鑒別我是zz
47 43 CF1008A
\(~\) 44 CF1008B
\(~\) 45 CF1102D
48 46 CF1108A
\(~\) 47 CF1108B
\(~\) 48 CF1108C
\(~\) 49 CF1108D
\(~\) 50 +CF1108E1 最終的最大值不會被覆蓋
\(~\) 51 +CF1108E2 上一題加預處理
49 52 CF1107A
\(~\) 53 CF1107B
\(~\) 54 CF1107C
\(~\) 55 CF1107D
50 56 +CF1108F 最小生成樹
\(~\) 57 CF864A
\(~\) 58 CF864B
51 59 CF1099D 推式子,貪心
\(~\) 60 CF864C 模擬
52 61 +CF786B 線段樹優化建圖
\(~\) 62 CF897A
\(~\) 63 CF897B
53 64 CF897C 模擬
\(~\) 65 CF899A
\(~\) 66 CF899B
54 67 CF1037A
\(~\) 68 CF1037B
\(~\) 69 CF1037C
55 70 CF1106A
\(~\) 71 CF1106B
\(~\) 72 CF1106C
\(~\) 73 CF1106D
56 74 +CF1107E 區間dp,記憶化搜索,
57 75 CF1111A
\(~\) 76 CF1111B 注意邊界
\(~\) 77 CF1111C 注意邊界
58 78 CF1110A
\(~\) 79 CF1110B
\(~\) 80 CF1110C
\(~\) 81 +CF1110E 注意操作對差分序列的影響
59 82 CF1114A
\(~\) 83 CF1114B 猜結論
\(~\) 84 CF1114C 運算爆long long
60 85 CF1114D 區間dp
61 86 CF1113A 在家躺幾天,回歸本質了
\(~\) 87 CF1113B 讀錯題。
\(~\) 88 CF1113C
\(~\) 89 CF1113D 細節寫炸。
62 90 +CF1109D 計數。題意:求給定兩點之間的邊權和為\(m\),總點數為\(n\)個的樹的個數。做法: 固定兩點之間邊的數目\(e\),挑出\(e\)個點的方案數為\(A_{n-2}^{e-1}\),這條鏈上的邊權和為\(m\),利用隔板法可知方案數為\(C_{m-1}^{e-1}\),其余的邊的邊權都可以任意設定,因此方案數為\(m^{n-e-1}\),最后還需要的就是,其余的點以鏈上的點為基礎構成的森林的方案數。根據Cayley's formula的一般形式,可知點集\(\{ 1,2,..,n\}\) 構成的森林,且其中\(\{1,2,...,k\}\)屬於不同的樹,的方案數\(T(n,k) = kn^{n-k-1}\)證明。因此答案可表示為 \(\sum _{e=1}^{min(n-1,m)}A_{n-2}^{e-1}C_{m-1}^{e-1}m^{n-e-1}T(n,i+1)\)
\(~\) 91 CF1117A
\(~\) 92 CF1117B
\(~\) 93 +CF1117C 對於每個a[i],找到最小的經過的周期數k,解不等式,答案一定在交點附近,討論正負,驗證
\(~\) 94 +CF1117D 答案等價於\(\sum_{i} C_{n-im}^i\),手推幾組可以發現\(m=2\)時答案為\(Fib(n)\),然后發現\(dp(n) = dp(n-1) + dp(n-m)\) 矩陣快速冪求解
63 95 CF1131A
\(~\) 96 CF1131B
\(~\) 97 CF1131C
\(~\) 98 +CF1131F 倒着考慮整個過程,其實就是每次把一個區間的兩個數之間切成兩半,那么這顯然可以構造一顆二叉樹,每個非葉子節點代表切的那一刀,葉子節點表示最后這個位置的數字,那么如果我構造出了這顆二叉樹,就顯然可以dfs一遍輸出葉子節點的值即可。現在考慮自底向上的構造這棵樹,對於一個分割隔開的兩個點中的任意一個,如果它已經出現了,就把這個點所在的樹的根接到當前節點上,如果沒有,就新建一個節點作為葉子節點,查詢一個點所在樹的根可通過並查集實現,復雜度不考慮並查集是O(n)的 代碼然而崩了沒寫出來。。。當時認為直接用並查集+vector模擬合並的過程會tle,之后意識到如果每次都用小的合並到大的里,復雜度貌似是\(O(nlogn)\)
64 99 +CF1109E 任意模數區間乘\(x\),單點除\(x\),區間求和。考慮將\(Mod\)分解,將每個\(x\)按素因子是否屬於\(Mod\)分成兩個集合,第一個集合是所有的屬於\(Mod\)的因子,第二個集合是剩余的因子。對於第二個集合的因子,他們的乘積一定與\(Mod\)互素,因此一定存在逆元,這部分的除法可以轉化為乘逆元;對於第一集合顯然它的因子總數不多,所以我們對每個因子存下它的指數項,做除法時直接減去對應的指數項。考慮用線段樹維護答案,每個節點維護的\(Lazy\)標記,包含集合一中每個素因子及其指數項,集合二的乘積,以及答案。需要注意的是一開始的序列我們要將他們當作\(lazy\)標記,避免做除法時出現問題。還要注意合並答案時會多次用到集合一中素數的次冪,需要將預處理出來,否則會\(Tle\)Code
\(~\) 100 +CF1131D 建圖,倒着拓撲序遞推
\(~\) 1 CF1130A
\(~\) 2 CF1130B
\(~\) 3 CF1130C
\(~\) 4 +CF1130D1 每次取當前節點走的最遠的糖
65 5 +CF1130D2 根據上一題的結論,對於一個起點\(s\),我們考慮每個車站發完所有糖的時間,取個最大值就是答案
\(~\) 6 CF1023A
\(~\) 7 CF1023B
66 8 CF1118A
\(~\) 9 CF1118B
\(~\) 10 CF1118C
\(~\) 11 CF111F1
67 12 +CF1129B 構造
\(~\) 13 CF984A
\(~\) 14 CF984B
68 15 CF1118D1
\(~\) 16 CF1118D2
\(~\) 17 +CF984C 判斷分母\(q\),是否包含一個因子\(a\),沒有出現在\(b\)內。每次從\(q\)中除去它與\(b\)\(gcd\),同時將\(b\)修改為他們的\(gcd\)\(b,q\)的下降速度都是\(log(10^{18})\),總體是一個\(log\),正確性顯然。。。
69 18 +CF1129C \(unoldered\_set\)大法好!給定一空串s,長度\([1,4]\)\(26\)\(2\)進制電碼,代表不同的字母,每次在\(s\)后添加一個\(0\)\(1\),問當前的串\(s\),及其子串可以表示多少種不同的轉碼后的字符串。首先,對於長度不同的\(01\)串,一定不可能被轉成相同的字符串,對於一個固定的\(01\)串,兩種不同的合法分割方法一定可以構成不同的轉碼后的串。因此,對於\(01\)串中每個區間\(dp\)預處理這個區間有多少種合法的划分,\(F(l,r)\)表示區間\([l,r]\)的合法划分方案數,對於長度相同的串,\(hash\)判重,統計答案即可。一開始\(set\)超時了,\(unolder\_set\)\(4ms\)超時,艱難卡過去了。。。Code
70 19 +CF1131E 對於\(p1*p2*...*pn\)倒着考慮整個字符串乘法的過程。情況一:假設當前獲得的字符串\(Now\)包含2種及以上種類數的字母,那么答案就是枚舉剩余的沒有成進來的串的所有字符,是否可以與\(Now\)的前綴后綴疊加更新答案。情況二:對於\(Now\)如果它是只有一種字符串考慮將它與之后的串合並,如果可以合並出一個只包含一種的串就繼續合並,如果不行,計算出乘法之后的前后綴,更新答案進入情況一。注意對答案的更新
\(~\) 20 CF1013A
\(~\) 21 CF1013B
71 22 CF1132A A 3發過 B 2發過。
\(~\) 23 CF1132B
\(~\) 24 CF1132C
\(~\) 25 +CF1132F 區間dp, 復雜度是\(O(n^326)\),算起來應該超時嚴重。。。剪剪枝,卡卡常。。最后發現主要原因是多寫了一組無用的轉移導致\(Tle\) 出思路+寫代碼30min,調試+懷疑人生50min。
72 26 +gym102059A 題解
73 27 CF1046C
\(~\) 28 CF1051A
74 29 CF1138A
\(~\) 30 +CF1138B 任意等分為兩組,計算兩組有用人數的差值,交換不同種類的演員,將差值調整為0
\(~\) 31 CF1138C 讀題。
75 32 CF1137B kmp,貪心
\(~\) 33 CF1133A
\(~\) 34 CF1133B
\(~\) 35 CF1133C
\(~\) 36 CF1133D
\(~\) 37 CF1133E
\(~\) 38 +CF1133F1 排序之后,倒着\(dp\)\(dp[i][j]\)表示選了以第i個數作為左端點的區間,i到n中一共使用了j個區間的最大覆蓋范圍,討論轉移:一種左端點在當前區間內部,用對應右端點最遠的更新,另一種左端點在外部,用這些\(dp\)值的最大值更新答案

----------- update 2019/3/10

打算之后按套題更新。。。盡量完整的補完一套題。希望能堅持下去吧。。。

Contest Problem Status Note
Codeforces Round #545 (Div. 1) C.Museums Tour AC 官方題解 Code空間時間都卡滿
$~$ | E. Train Car Selection | AC | [Code](https://codeforces.com/contest/1137/submission/51191578)操作1和操作3后,答案一定是最左端的點,答案的都容易維護。對於操作2,我們維護一個左下凸的凸殼,顯然這個答案點一定在凸殼上,並且維護凸殼之上的修改操作,對於新加的點答案一定是這一段的左端點,它的實際值為0,於是我們就可以假設它上面打着修改標記,計算它應有的值,然后加入這個點。加等差數列不會改變凸殼上應有的點,我們可以在凸殼上三分,或者直接從棧彈棧頂,直到找出實際上的底部的點。
$~$ | F. Matches Are Not a Child's Play| AC | [題解](https://www.cnblogs.com/RRRR-wys/p/10527816.html)
Codeforces Round #544 (Div. 3)|F2. Spanning Tree with One Fixed Degree| - |
Educational Codeforces Round 61 (Rated for Div. 2)|D. Stressful Training| - |
$~$ | E. Knapsack| - |
$~$ | G. Greedy Subsequences | - |


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM