課程大作業 POJ15288狀態壓縮dp

2021-10-23 07:16:41 字數 1302 閱讀 2315

d:課程大作業

輸入輸入包含若干測試樣例。

輸入的第一行是乙個正整數t,代表測試樣例數目。

對於每組測試樣例,第一行為正整數n(1 <= n <= 15)代表課程數目。

接下來n行,每行包含乙個字串s(不多於50個字元)代表課程名稱和兩個整數d(代表大作業截止時間)和c(完成該大作業需要的時間)。

注意所有的課程在輸入**現的順序按照字典序排列。

輸出對於每組測試樣例,請輸出最小的扣分以及相應的課程完成的順序。

如果最優方案有多個,請輸出字典序靠前的方案。

樣例輸入23

computer 3 3

english 20 1

math 3 2

3computer 3 3

english 6 3

math 6 3

樣例輸出

2computer

math

english

3computer

english

math

#include

#include

#include

using

namespace std;

const

int max (

1<<16)

;int d[16]

;int c[16]

;int sum[max]

;//當前做法下完成任務總用時

string name[16]

;string ans[max]

;//用來儲存做法

int dp[max]

;//當前做法下的最少扣分

intf

(int i,

int j)

intmain()

for(

int i =

1; i <

1<}//得到所有用時,下面開始更新扣分

for(

int i =

0; i <

1<)//初始化答案串

dp[0]

=0;for

(int i =

1; i <

1<) dp[i]

= dp[i ^(1

<< j)]+

f(sum[i]

, d[j]);

}}} cout << dp[(1

<< n )-1

]<< endl;

cout << ans[(1

<< n)-1

];}return0;

}

c語言大作業 c語言課程設計,大作業

c語言課程設計,大作業 本人是一名211大學軟體工程專業的大三學生,6 7月份幫助了很多學弟學妹完成了課程設計,大作業。本人 質量高,講誠信,承接c語言,c 課程設計,大作業以及資料結構的內容。下面是c語言通訊錄的部分源 include include includetypedef struct a...

課程大作業 百練 4149

該題的題意比較難以理解,並且問題難以分析,其中的要點就是,包含j這個點的狀態的時間總值是否大於j這個點的截止時間,如果小於則扣分數為0,大於則差值就為扣分數 includeusing namespace std const int max 1 16 int dp max 把每乙個狀態中課程完成的最少...

大作業感悟

作為本次大作業的組長,看著專案從呱呱墜地到瓜熟蒂落,就像看著自己的孩紙長大一樣。心中感慨萬千,成長的過程總是快樂與痛苦並行,喜悅與煩惱同在的。從兩個星期前的頭腦風暴到前期的精心設計 中期的分工實施再到後期的測試與優化。每一步走的都讓 連忘返,每一步都讓人記憶猶新。在這兩個星期中,我們不僅得到了知識和...