買書問題的實現

2021-06-21 10:11:14 字數 841 閱讀 9443

這道題首先想到的是貪心,但是很不好分析正確性。演算法上講的,貪心演算法需要具有最優子結構和貪心選擇的性質,在這裡都不好證明。然後就是動態規劃了,貼一下我的實現**,我努力的使**簡潔一些,可還是不太好看。

#include #include #include using std::cin;

using std::cout;

using std::endl;

double res[20][20][20][20][20];

const double discount[5] = ;

template int comp(const void *a, const void *b)

double get_min(double* a, int length)

double find_best(int a, int b, int c, int d, int e);

qsort(num, 5, sizeof(int), comp);

if(num[0] == 0)

return 0.0;

a = num[0]; b = num[1]; c = num[2]; d = num[3]; e = num[4];

if(res[a][b][c][d][e]>0)

return res[a][b][c][d][e];

double tp[5], t_res;

memset(tp, 0, sizeof(tp));

int length = 0;

if(e>0)else if(d>0)else if(c>0)else if(b>0)else

for(int i=0;i>num[i];

} cout<

買書問題的動態規劃實現

encoding utf 8 買書問題 貪心演算法是失效的,5,3 5,4單個並不是最優的,這次選擇會影響下一次的選擇的 比如反例 5,5,5,3,3 貪心的策略為 5,5,5,3,3 133.2,改進的貪心策略為 5,5,4,4,3 132.8,而實際的最優的策略為 5,4,4,4,4 132.4...

買書優惠問題

1,題目 書店針對 哈利波特 系列書籍進行 活動,一共5卷,用編號0 1 2 3 4表示,單獨一捲售價8元,具體折扣如下所示 本數折扣 5 10 20 25 根據購買的卷數以及本數,會對應不同折扣規則情況。單數一本書只會對應乙個折扣規則,例如購買了兩本卷1,一本卷2,則可以享受5 的折扣,另外一本卷...

最優買書問題

1.題目 書店針對 哈利波特 系列書籍進行 活動,一共5卷,用編號0 1 2 3 4表示,單獨一捲售價8元,具體折扣如下所示 本數 折扣 2 5 3 10 4 20 5 25 根據購買的卷數以及本數,會對應不同折扣規則情況。單數一本書只會對應乙個折扣規則,例如購買了兩本卷1,一本卷2,則可以享受5 ...