HDU 2079 選課時間(母函式 生成函式)

2021-07-31 11:05:14 字數 896 閱讀 2882

本題可以利用01揹包+多重揹包來解決,也可以利用母函式來解決,博主本著能用數學方法解就不暴力的原則,學習了一下母函式來解決了一下這道題。其中,母函式又叫生成函式,關於它的講解請參考這篇文章:

關於母函式的實現,可以看我的**,裡面注釋很詳細,都是我根據自己理解重新注釋的

#include

#include

#include

#include

#include

#include

#include

#include

#include

#define clean(n,m) memset(n,m,sizeof(n))

#define ll long long

using namespace std;

int main()

clean(c1, 0);

//對c1初始化,由第乙個表示式初始化,把從1

*sub[1]到num[1]*sub[1]各項(或從1

*sub[1]到num[1]*sub[1]各項中直到能達到學分要求的項)的係數都賦成1

for (int i = 0, t = 0;i <= n&&t <= num[1];i=i+sub[1],t++)

//對c2初始化,全部賦0

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

//從第二個式子開始,直到遍歷完m個式子

for (int i = 2;i <= m;i++)

}//把c2的值賦給c1,把c2賦成0,因為c2每次是從乙個表示式中開始的

for (int j = 0;j <= n;j++)

}cout << c1[n] << endl;

}return

0;}

HDU 2079選課時間 (母函式)

其實思路是挺簡單的,直接母函式的模板套用即可,主要是粗心的緣故吧,少些了點東西,後來反覆built才弄好 include include include include include using namespace std 選課時間 問n個學分有多少種組合,認為學分一樣的課沒區別 input 輸入...

HDU2079 選課時間

problem description 又到了選課的時間了,xhd看著選課表發呆,為了想讓下一學期好過點,他想知道學n個學分共有多少組合。你來幫幫他吧。xhd認為一樣學分的課沒區別 input 輸入資料的第一行是乙個資料t,表示有t組資料。每組資料的第一行是兩個整數n 1 n 40 k 1 k 8 ...

K 選課時間 HDU 2079

k 選課時間 hdu 2079 又到了選課的時間了,xhd看著選課表發呆,為了想讓下一學期好過點,他想知道學n個學分共有多少組合。你來幫幫他吧。xhd認為一樣學分的課沒區別 input 輸入資料的第一行是乙個資料t,表示有t組資料。每組資料的第一行是兩個整數n 1 n 40 k 1 k 8 接著有k...