日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

“kuangbin带你飞”专题计划——专题十二:基础DP1

發布時間:2023/12/20 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 “kuangbin带你飞”专题计划——专题十二:基础DP1 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

寫在前面

1.開始時間:2021-05-27

2.專題傳送門:[kuangbin帶你飛]專題1-23

3.題意題解貢獻:kuangbin 專題十二 基礎DP1

4.我的總結:DP基礎知識總結

?

題目:

1.(題解傳送門)Max Sum Plus Plus HDU - 1024 :連續的n個數中求出和最大的不相交的m段+DP空間優化(不停學習更多的dp方式)

2.(不需要題解)Ignatius and the Princess IV HDU - 1029 :找出數組中出現次數>=(n+1)/2的數。(大水題)

3.(不需要題解)Monkey and Banana HDU - 1069 :(依舊大水題)給n<=30個長方體的長,寬,高,每種可以無限個,而且可以任意翻轉,問最高能堆成多高的梯子(上面的長方體的長,寬嚴格小于下面的長寬):一種拓展成3種,然后排序,一個二重循環就ok了。下面還是簡單貼個代碼

#include <algorithm> #include <cstdio> #include <cstring> #include <iostream> #include <map> #include <string>using namespace std; const int N = 30 * 6 + 10;struct node {int a, b, c;node(int a = 0, int b = 0, int c = 0) : a(a), b(b), c(c) {}bool operator<(node t) const {if (a == t.a)return b > t.b;elsereturn a > t.a;} } s[N]; int n, a, b, c, dp[N]; int cnt; signed main() {int cas = 0;while (cin >> n) {if (n == 0) break;memset(dp, 0, sizeof(dp));cnt = 0;int i, j;for (i = 1; i <= n; i++) {scanf("%d%d%d", &a, &b, &c);s[++cnt] = node(max(a, b), min(a, b), c);s[++cnt] = node(max(a, c), min(a, c), b);s[++cnt] = node(max(b, c), min(b, c), a);}sort(s + 1, s + 1 + cnt);//不必特意找bug,先把整體結構寫出來,在這個過程中,可能很多bug不用可以去找就能解決了;另外如果發現方法不對,也可以節約時間。// for (i = 1; i <= cnt; i++) {// printf(":::%d %d %d %d\n", i, s[i].a, s[i].b, s[i].c);// }for (i = 1; i <= cnt; i++) {dp[i] = s[i].c;for (j = i - 1; j >= 1; j--) {if (s[i].a < s[j].a && s[i].b < s[j].b)dp[i] = max(dp[i], dp[j] + s[i].c);}}int mx = 0;for (i = 1; i <= cnt; i++) mx = max(mx, dp[i]);printf("Case %d: maximum height = %d\n", ++cas, mx);}return 0; }

4.Doing Homework HDU - 1074 :

5.(不需要題解)Super Jumping! Jumping! Jumping! HDU - 1087 :和HDU1069幾乎一樣的題,就是變了個殼子。

6.(不需要題解)Piggy-Bank HDU - 1114 :裸的完全背包問題,題意需要注意一下。

7.(不需要題解)免費餡餅 HDU - 1176 :簡單DP(需要刷的DP題還多,這么簡單的DP就不必寫博客了。總結下基礎知識到DP基礎知識總結就OK了)

8.(不需要題解)Tickets HDU - 1260 :就是個和走樓梯一樣的簡單dp

9.(題解傳送門)最少攔截系統 HDU - 1257 :最長上升子序列——O(nlogn)

10.(不需要題解)FatMouse's Speed HDU - 1160 :水題pass(又是HDU-1069一類的題)

11.Jury Compromise POJ - 1015 :

12.(不需要題解)Common Subsequence POJ - 1458 :最長公共子序列模板題(已經總結在經典例題中)

13.(不需要題解)Help Jimmy POJ - 1661 :認真讀題就Ok

14.(不需要題解)Longest Ordered Subsequence POJ - 2533 :最長不上升/下降子序列(已經總結在經典例題中)

15.(題解傳送門)Treats for the Cows POJ - 3186 :雙端隊列有權取數+區間DP

16.(題解傳送門)FatMouse and Cheese HDU - 1078 :記憶化搜索+拓撲排序

17.(題解傳送門)Phalanx HDU - 2859 :矩形中求最大的對稱正方形

18.(不需要題解)Milking Time POJ - 3616 :有點兒意思,G++過得了,C++卻runtime erorr。不知道哪里的問題,有這個意識吧——實在檢查不出來就試試換一種編譯器(C++/G++)。

19.(題解傳送門)Making the Grade POJ - 3666 :將一個數組變成 嚴格&不嚴格,不遞增&不遞減 的數組的最小代價

總結

以上是生活随笔為你收集整理的“kuangbin带你飞”专题计划——专题十二:基础DP1的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。