Week11 東東開車了

2021-10-05 20:47:02 字數 835 閱讀 9681

問題描述:

東東開車出去泡妞(在夢中),車內提供了 n 張cd唱片,已知東東開車的時間是 n 分鐘,他該如何去選擇唱片去消磨這無聊的時間

我們需要找到最能消磨時間的唱片數量,並按使用順序輸出答案(必須是聽完唱片,不能有唱片沒聽完卻到了下車時間的情況發生)

思路解析:

1.0-1揹包問題,n個物品對應m張唱片,揹包體積v對應開車時間n,物品的體積w[i]和價值v[i]都是唱片時長。要求最終揹包容量至多為v,且要按順序輸出所放物品。

2.vis[i][j]陣列來記錄當容量為j的時候選擇了物品i,用於輸出,更新當前揹包容量。

3.通過比較dp[v]<=dp[v-volume[i]]+volume[i],決定要不要選擇第i張cd,更新dp。

**實現:

#include

#include

using

namespace std;

const

int n=

10005

;int volume[n]

;int dp[n]

;bool vis[25]

[n];

intmain()

for(

int i=

0; i++i)}}

for(

int i=n-

1,j=v; i>=

0; i--)}

printf

("sum:%d\n"

,dp[v]);

}return0;

}

東東開車了 Week11作業F題

東東開車出去泡妞 在夢中 車內提供了 n 張cd唱片,已知東東開車的時間是 n 分鐘,他該如何去選擇唱片去消磨這無聊的時間呢 輸入 多組輸入 每行輸入第乙個數字n,代表總時間,第二個數字 m 代表有 m 張唱片,後面緊跟 m 個數字,代表每張唱片的時長 例如樣例一 n 5,m 3,第一張唱片為 1 ...

Week11作業 A 必做題 11

題目 蒜頭君從現在開始工作,年薪 n 萬。他希望在蒜廠附近買一套 60 平公尺的房子,現在 是 200 萬。假設房子 以每年百分之 k 增長,並且蒜頭君未來年薪不變,且不吃不喝,不用交稅,每年所得 n萬全都積攢起來,問第幾年能夠買下這套房子?第一年年薪 n 萬,房價 200 萬 輸入格式 一行,包含...

01揹包 回溯 東東開車了

東東開車出去泡妞 在夢中 車內提供了 n 張cd唱片,已知東東開車的時間是 n 分鐘,他該如何去選擇唱片去消磨這無聊的時間呢 假設 input 多組輸入 每行輸入第乙個數字n,代表總時間,第二個數字 m 代表有 m 張唱片,後面緊跟 m 個數字,代表每張唱片的時長 例如樣例一 n 5,m 3,第一張...