hdu 1500 Chopsticks
摘要: 參考了下別人的代碼,dp真是千變萬化啊!
這與搬寢室還是有很大不同的,要倒過來做;
dp[物品組數][物品個數](I為I副筷子,J為總共筷子)
現在轉入正題,這個題目要求每一組有3個筷子,前2個的差的平方最小,
首先和前面題目一樣先排序對把,顯然從大到小排(因為這樣完全可以轉化成搬寢室 那個一樣的思想)
比如取第2隊物品,那么第一對已經取完保存在數組里面了,
那么從s[2][3*2+1]計算到s[2][n],
為什么這樣就可以呢?
仔細想下,第2組,前面只要有2個可以作為最大的筷子了,一定滿足題目意思的了,所以一直計算下去,
狀態轉移方程和前面一樣~
dp[i][j]=min(dp[i-1][j-2]+(a[j]-a[j-1])*(a[j]-a[j-1]),dp[i][j-1]);
ps:排序從大到小很精妙~
閱讀全文
hdu 1421 搬寢室
摘要: 由于數據還是比較大的,初始化時一定要足夠大,很容易錯!
dp[i][j] 從前i個物品中選取j對物品。
閱讀全文
hdu 2670 Girl Love Value
摘要: dp[i][j] 從前i個人中選j個的最優值。
底層為從前i個選1個。
閱讀全文
hdu 1074 Doing Homework
摘要: 這題本來是在dp專題里的,或許這里是記憶化搜索吧!不是很明白的!
閱讀全文
hdu 2059 龜兔賽跑
摘要: 在同學的悉心教導之下總算做對了,雖然還不是很懂~
閱讀全文
hdu 1203 I NEED A OFFER!
摘要: 原以為是用DP做的,但就是不會寫,后來才知道用貪心就可以了!
閱讀全文
hdu 1159 Common Subsequence 最大公共子序列
摘要: dp[i][j]記錄第一個串的前i個字符與第二個串的前j個字符的最大公共子序列的個數。
閱讀全文
hdu 2512 一卡通大冒險
摘要: 當被分成一堆和n堆的時候都只有一種情況,要在實現初始化。
重要的推導:dp[i][j] = (dp[i-1][j-1] + dp[i-1][j] * j)
閱讀全文
hdu 1195 Open the Lock
摘要: 廣搜,方向為加一,減一,相鄰交換,注意10和0的處理!
閱讀全文
hdu 1195 Open the Lock
摘要: 廣搜,方向為加一,減一,相鄰交換,注意10和0的處理!
閱讀全文
hdu 1016 Prime Ring Problem
摘要: 很基本的深搜題,素數環,但是不理解深搜的含義還是不能做的!還好有人教,O(∩_∩)O~
閱讀全文