原创 (dp)洛谷P1736創意吃魚法

洛谷P1736創意吃魚法 思路: 他要求一個矩陣只能並且必須在對角線上有1才能被吃掉。 如下: 1 0 0 0 1 0 0 0 1 我們用dp[i][j]表示這點滿足矩陣的最大值。 那麼看下圖: 1 0 0 0 0 1 0 1

原创 (dp)洛谷P1108低價購買

洛谷P1108低價購買 思路: 看起來是最長下降子序列,但要考慮方案數,這裏卡了好久。方案數也像一個dp,由dp的狀態來決定方案的狀態。 代碼: #include<bits/stdc++.h> #define pii pair<i

原创 (揹包)AtCoder153E-Crested Ibis vs Monster

AtCoder153E-Crested Ibis vs Monster 思路: 兩天沒寫代碼真的狀態好差。 完全揹包。 代碼: #include<bits/stdc++.h> #define pii pair<int,int> #

原创 (dp)洛谷P1095守望者的逃離

洛谷P1095守望者的逃離 思路: dp[i]表示在第i秒最遠走多遠,跑步和閃爍分開進行。 代碼: #include<bits/stdc++.h> #define pii pair<int,int> #define ll long

原创 (bfs)洛谷P1363幻象迷宮

洛谷P1363幻象迷宮 思路: 剛開始,我的思路是能夠再次找到S點,就能無限走下去。 然而看反例: 5 5 ##### #...# #.#S# #...# ##### 很顯然,這不能走出去。 5 5 ##### ..#.. #S

原创 (最小生成樹)HDU1875暢通工程再續

HDU1875暢通工程再續 思路: 模板題。 代碼: #include<bits/stdc++.h> #define pii pair<int,int> #define ll long long #define cl(x) mem

原创 (搜索)洛谷P1037產生數

洛谷P1037產生數 思路: 我們很容易看出結果是每個位數能變化的次數(包括他自身)的乘積。 然後我就用bfs找每個位數能變化幾次,TLE了。 對於dfs並不擅長,看來其他的題解,發現floyd也可以解決問題。floyd可以理解爲

原创 (最小生成樹)HDU1233還是暢通工程

HDU1233還是暢通工程 思路: 模板題。可是我竟然把&&打錯成&,wa了n次!!! #代碼: #include<bits/stdc++.h> #define pii pair<int,int> #define ll long

原创 (並查集)2020牛客寒假算法基礎集訓營1F.maki和tree

2020牛客寒假算法基礎集訓營1F.maki和tree 思路: 剛開始想用帶權並查集做,權值想設爲x到y點經過的黑點數,但是後來發現這樣寫不了,因爲這與x的顏色,y的顏色,和中間經過點的顏色都有關,並不是簡單的加減可得的。 後來看

原创 (線段樹單點修改區間查詢)洛谷P3374【模板】樹狀數組 1

洛谷P3374【模板】樹狀數組 1 思路: 一個小時才寫完的模板題。 記一下自己錯的多的地方: 位運算不熟悉,>>和<<總是混淆。 <,>,>=,<=混淆。 線段樹還是太生疏了,理解的很差。 代碼: #include<bits/s

原创 (dp)2020牛客寒假算法基礎集訓營2H.施魔法

2020牛客寒假算法基礎集訓營2H.施魔法 思路: 比賽時推了一個n2的dp,一看肯定TLE/MLE。 先排序。 dp[i]表示選前i個花費魔法最小值。 dp[i]=min(dp[j-1]+a[i]-a[j])=min(dp[j-

原创 洛谷P1201[USACO1.1]貪婪的送禮者Greedy Gift Givers

洛谷P1201[USACO1.1]貪婪的送禮者Greedy Gift Givers 思路: 結構體存名字去判斷和map映射都可以。 代碼(結構體): #include<bits/stdc++.h> #define pii pair

原创 洛谷P1203[USACO1.1]壞掉的項鍊Broken Necklace

洛谷P1203[USACO1.1]壞掉的項鍊Broken Necklace 思路: 看起來很簡單,枚舉每個點兩邊暴力跑。但是一直wa3和7。因爲需要考慮左右第一個遇到的珠子是w的情況。 代碼: #include<bits/stdc

原创 洛谷P1478陶陶摘蘋果(升級版)

洛谷P1478陶陶摘蘋果(升級版) 思路: 先寫點水題恢復下。 判斷後排序。 代碼: #include<bits/stdc++.h> #define pii pair<int,int> #define ll long long #

原创 (gcd)ZJNU-B - Diagonal Cut

ZJNU-B - Diagonal Cut 題意&思路: 給你M×N小塊的巧克力,從左上角到右下角切一刀,求有多少格巧克力被分成面積相等的兩小塊。 設g=__gcd(N,M) 可得直線方程:y=-(M/g)/(N/g)x+N,可以