清華大學2023年機試 最小郵票數 1209

2021-08-07 05:33:09 字數 1417 閱讀 8380

題目描述:

有若干張郵票,要求從中選取最少的郵票張數湊成乙個給定的總值。

如,有1分,3分,3分,3分,4分五張郵票,要求湊成10分,則使用3張郵票:3分、3分、4分即可。

輸入

有多組資料,對於每組資料,首先是要求湊成的郵票總值m,m<100。然後是乙個數n,n<20,表示有n張郵票。接下來是n個正整數,分別表示這n張郵票的面值,且以公升序排列。

輸出

對於每組資料,能夠湊成總值m的最少郵票張數。若無解,輸出0。

樣例輸入

10 5

1 3 3 3 4

樣例輸出

3解題思路:

這道題有兩種解題思路:一是遍歷,可以用廣度優先遍歷完成;二是動態規劃,狀態轉移方程為: total[j] = min。

bfs**:

#include 

#include

using

namespace

std;

const

int maxm = 100;

const

int maxn = 20;

int m, n;

int stamp[maxn];

struct node

node(int a, int b, int c): index(a), cnt(b), sum(c) {}

};int bfs()

}return0;}

int main()

printf("%d\n", bfs());

}//fclose(stdin);

return

0;}

dp**:

#include 

#define inf 10000

const

int maxm = 100;

const

int maxn = 20;

int m, n;

int stamp[maxn];

int total[maxm];

int min(int a, int b)

total[0] = 0;

for(int i = 0; i < n; i++)}}

return total[m] != inf?total[m]:0;

}int main()

printf("%d\n", dp());

}fclose(stdin);

return

0;}

動態規劃思路參考部落格

清華大學2023年機試 質因數的個數 1207

題目描述 求正整數n n 1 的質因數的個數。相同的質因數需要重複計算。如120 2 2 2 3 5,共有5個質因數。輸入 可能有多組測試資料,每組測試資料的輸入是乙個正整數n,1 n 10 9 輸出 對於每組資料,輸出n的質因數的個數。樣例輸入 120 樣例輸出 5解題思路 雖然是一道水題,但是有...

清華大學2023年機試 遞推數列 1081

題目描述 給定a0,a1,以及an p a n 1 q a n 2 中的p,q。這裡n 2。求第k個數對10000的模。輸入 輸入包括5個整數 a0 a1 p q k。輸出 第k個數a k 對10000的模。樣例輸入 20 1 1 14 5 樣例輸出 8359 解題思路 首先,第一反應是用遞迴解題,...

清華大學2023年機試 進製轉換 1080

題目描述 將m進製的數x轉換為n進製的數輸出。輸入 輸入的第一行包括兩個整數 m和n 2 m,n 36 下面的一行輸入乙個數x,x是m進製的數,現在要求你將m進製的數x轉換成n進製的數輸出。輸出 輸出x的n進製表示的數。樣例輸入 16 10 f樣例輸出 15解題思路 就是進製轉換,但是需要注意的是資...