筆試刷題 美團

2021-08-21 22:15:16 字數 849 閱讀 4433

題目描述:

/**

給你六種面額 1、5、10、20、50、100 元的紙幣,假設每種幣值的數量都足夠多,

編寫程式求組成n元(n為0~10000的非負整數)的不同組合的個數。

輸入描述:

輸入包括乙個整數n(1 ≤ n ≤ 10000)

輸出描述:

輸出乙個整數,表示不同的組合方案數

輸入例子1:

1輸出例子1:

1*/

思路如下:

dp[m][n]表示用前m中紙幣可以組合出n元的組合個數

dp[m][n]=dp[m-1][n]+dp[m][n-values[m]]

values[m]表示第m種紙幣的面值

base case:

dp[m][0]=1

1<=m<=max_m

1<=n<=max_n

可以採用滾動陣列節省空間

下面採用滾動陣列實現

**如下:

#include#include#define max_m 6

#define max_n 10005

typedef long long ll;

using namespace std;

bool flag=false;

int values[max_m+1]=;

ll dp[2][max_n];

int main()

//printf("\n");

flag=!flag;

}printf("%lld", dp[flag][n]);

return 0;

}

筆試刷題 美團

題目描述 大富翁遊戲,玩家根據骰子的點數決定走的步數,即骰子點數為1時可以走一步,點數為2時可以走兩步,點數為n時可以走n步。求玩家走到第n步 n 骰子最大點數且是方法的唯一入參 時,總共有多少種投骰子的方法。輸入描述 輸入包括乙個整數n,1 n 6 輸出描述 輸出乙個整數,表示投骰子的方法 輸入例...

筆試刷題 美團

題目描述 給出兩個字串 可能包含空格 找出其中最長的公共連續子串,輸出其長度。輸入描述 輸入為兩行字串 可能包含空格 長度均小於等於50.輸出描述 輸出為乙個整數,表示最長公共連續子串的長度。輸入例子1 abcde abgde 輸出例子1 2 思路如下 dp i j 表示str1以i結尾和str2以...

美團筆試真題

下面哪種stl容器的實現和其它三個不一樣 a.set b.deque c.multimap d.map 答案 b 序列式容器 vector,list,deque 介面卡容器 stack,queue,優先佇列priority queue 關聯式容器 set,multiset,map,multimap,...