原创 洛谷 P6175 無向圖的最小環問題

題目傳送門 Floyd,每當處理到一個斷點k時,更新答案,用此時的所有任選兩個點(除了k外)的最短路和到k的距離更新答案,因爲此時的最短路一定不包括k,可以滿足環的要求. #include<iostream> #include<cstdi

原创 洛谷 P1312 Mayan遊戲

題目傳送門 大模擬,用的bfs,完全按照題目描述做即可,其實本題用dfs要更好寫. 我的做法有點缺陷,但是不知道在哪裏,不開\(O_2\)優化會T一個點. #include<iostream> #include<cstdio> #incl

原创 洛谷 T150024 矩形面積並(掃描線)

題目傳送門 掃描線板子. #include<iostream> #include<cstdio> #include<cstring> #include<vector> #include<map> #include<algorithm>

原创 洛谷 P1310 表達式的值

題目傳送門 因爲看不懂題解裏的做法,只好自己寫了一個大模擬+DP. 對於帶括號的式子,從裏到外一層一層的處理括號,將其轉化爲一個數(即括號內可獲得的方案數),這樣做可以保證我們每次處理的都是一個不帶括號的式子,只需考慮算式優先級即可,先算

原创 求和(團隊題目)

題目傳送門 首先知道一個斐波那契數列的通式\(F_n = \frac {1}{\sqrt{5}} * ((\frac{1+\sqrt{5}}{2})^{n+1}-(\frac{1-\sqrt{5}}{2})^{n+1})\) 二項式定理:\

原创 洛谷 P1279 字串距離

題目傳送門 \(字符串dp,f_{i,j}表示a串到第i位和b串到第j位的最小距離,轉移和LCS一樣\) #include<cstdio> #include<cstring> #include<iostream> #include<cmat

原创 洛谷 P1651 塔

題目傳送門 一道dp,但我沒推出方程,只好寫記憶化搜索+剪枝. 主要說一下爲什麼從小到大排序,如果大的塊被選擇且最終得出符合題意的答案,那麼後面很多狀態都會被剪掉,因爲答案越搜越小(應該是). #include<iostream> #inc

原创 洛谷 P2760 科技莊園

題目傳送門 \(dp,將矩陣的每一個格轉化成一個物品,然後跑揹包\) #include<iostream> #include<cstdio> #include<cstring> using namespace std; long lon

原创 洛谷 P2642 雙子序列最大和

題目傳送門 分別f[i][1/0]表示到第i位從前面或從後面子序列的最大和,最後枚舉斷點即可. #include<iostream> #include<cstdio> #include<cstring> using namespace s

原创 洛谷 P2432 zxbsmk愛查錯 && 洛谷 P2875 [USACO07FEB]The Cow Lexicon S

題目傳送門 題目傳送門2 f[i]表示到第i位最少要刪的字符數,對於每個i,將其作爲最後一位向前跟w個單詞匹配,如果向前匹配到第k位,那就用f[k-1]轉移,在匹配過程中記錄需要刪去元素的個數. #include<iostream> #in

原创 洛谷 P2364 胖男孩

題目傳送門 類比最長公共子序列,\(f_{i,j,k}\)表示到\(A_i,B_j,C_k\)的最大答案,然後跟最長公共自序列一樣轉移即可 #include<iostream> #include<cstdio> #include<cstri

原创 洛谷 P1759 通天之潛水

題目傳送門 兩維限制的揹包,\(f_{i,j}\)表示重力爲i,阻力爲j的最長時間,和01揹包一樣轉移,最後用一個數組保存一下方案即可 #include<iostream> #include<cstdio> #include<cstrin

原创 洛谷 P3254 圓桌問題

題目傳送門 源點到i單位的連容量爲\(r_i\)的邊,單位到每個餐桌連容量爲1的邊,餐桌j到匯點連容量爲\(c_j\)的邊,跑最大流 #include<iostream> #include<cstdio> #include<cstring>

原创 洛谷 P1654 OSU!

題目傳送門 期望dp,f[i]表示到第i位,1~n的期望收益. 對於每一位,如果操作成1,那收益就會變成: \((x+1)^3 = (x+1)^2(x+1) = (x^2+2x+1)(x+1) = x^3+3x^2+3x+1\) 顯然我們在

原创 洛谷 P5414 [YNOI2019]排序

題目傳送門 移動一個數可以看做將其刪掉,最終保留一個和最大的上升子序列