Zut round 6(動態規劃)

2021-10-04 22:45:11 字數 1370 閱讀 6029

思路 :找出i前面的最大長度,使得dp[i]的能取到當前長度的最大值

#include

using

namespace std;

intmain()

for(

int i=

2;i<=n;i++)}

maxx=dp[1]

;for

(int i=

1;i<=n;i++

) cout

}

b - 一維線性dp ++

解題思路:

dp[i]陣列用來儲存從起點到當前第i個充電站所用的時間。其等於dp[i] (j#include

using

namespace std;

intmain()

p[0]

=0; p[n+1]

=l;//把終點當做最後一站而不是最後乙個充電站

dp[0]

=0;for

(i=1

;i<=n+

1;i++

)else

if(j>0)

//當j=0時,電是滿的,所以不用充,之後所有情況都是停了一下,所以要加上充電時間

tt+=t;if

(tt//通過minn來比較,然後minn傳到外邊,保留進dp陣列

minn=tt;

} dp[i]

=minn;}if

(dp[n+1]

<=tr)

cout<<

"what a pity rabbit!"

cout<<

"good job,rabbit!"

<}return0;

}c - frog jumping

注意:不能用迴圈做,會超時

#include

using

namespace std;

intmain()

return0;

}

d - disturbed people

解題思路:遍歷一遍陣列,找到零,並且他左右兩邊都是一,因為是從左開始遍歷,所以當發現滿足條件的情況時,改變右邊的情況一般為最優選擇(因為右邊也可以影響後面的情況,來減少熄燈的個數)

#include

using

namespace std;

intmain()

for(i=

2;i<=n;i++)}

cout

}

Zut round 6周賽通過題題解

1.a lis o n 2 模板 poj 2533 直接模板代入就可以了 include using namespace std int dp 1005 int a 1005 intmain for int i 0 i for int j 0 j a j dp i max dp i dp j 1 i...

實驗6 動態規劃

一 實驗目的 1.通過動態規劃演算法的示例程式理解動態規劃演算法的基本思想 運用動態規劃演算法解決實際問題加深對動態規劃演算法的理解和運用 二 實驗環境 visual c 實驗環境 三 實驗內容 寫出主要的內容 分析並掌握 最長公共子串行 問題的動態規劃演算法求解方法 最長公共子串行問題 若給定序列...

寒假集訓作業(6) 動態規劃初步

include using namespace std int money 8 long int dp 8 251 int main for i 0 i 251 i for i 2 i 8 i else while cin n n 0 找零錢 dynamic programming 最後還是用一下 ...