母函數
阿新 • • 發佈:2018-08-14
不但 space mit 一個 php 含義 eof set light
於是,很多人們慕名而來,找Lele買水果。
甚至連大名鼎鼎的HDU ACM總教頭 lcy 也來了。lcy拋出一打百元大鈔,"我要買由M個水果組成的水果拼盤,不過我有個小小的要求,對於每種水果,個數上我有限制,既不能少於某個特定值,也不能大於某個特定值。而且我不要兩份一樣的拼盤。你隨意搭配,你能組出多少種不同的方案,我就買多少份!"
現在就請你幫幫Lele,幫他算一算到底能夠賣出多少份水果拼盤給lcy了。
註意,水果是以個為基本單位,不能夠再分。對於兩種方案,如果各種水果的數目都相同,則認為這兩種方案是相同的。
最終Lele拿了這筆錢,又可以繼續他的學業了~
Input
本題目包含多組測試,請處理到文件結束(EOF)。
每組測試第一行包括兩個正整數N和M(含義見題目描述,0<N,M<=100)
接下來有N行水果的信息,每行兩個整數A,B(0<=A<=B<=100),表示至少要買該水果A個,至多只能買該水果B個。
題目數據保證這個答案小於10^9
理解母函數:https://blog.csdn.net/howardemily/article/details/75041523
題目:http://acm.hdu.edu.cn/showproblem.php?pid=2152
Fruit
Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 5779 Accepted Submission(s): 3405
於是,很多人們慕名而來,找Lele買水果。
甚至連大名鼎鼎的HDU ACM總教頭 lcy 也來了。lcy拋出一打百元大鈔,"我要買由M個水果組成的水果拼盤,不過我有個小小的要求,對於每種水果,個數上我有限制,既不能少於某個特定值,也不能大於某個特定值。而且我不要兩份一樣的拼盤。你隨意搭配,你能組出多少種不同的方案,我就買多少份!"
現在就請你幫幫Lele,幫他算一算到底能夠賣出多少份水果拼盤給lcy了。
註意,水果是以個為基本單位,不能夠再分。對於兩種方案,如果各種水果的數目都相同,則認為這兩種方案是相同的。
最終Lele拿了這筆錢,又可以繼續他的學業了~
每組測試第一行包括兩個正整數N和M(含義見題目描述,0<N,M<=100)
接下來有N行水果的信息,每行兩個整數A,B(0<=A<=B<=100),表示至少要買該水果A個,至多只能買該水果B個。
Output 對於每組測試,在一行裏輸出總共能夠賣的方案數。
題目數據保證這個答案小於10^9
Sample Input 2 3 1 2 1 2 3 5 0 3 0 3 0 3
Sample Output 2 12
#include<iostream> #include<cstring> using namespace std; int a[1000]; int coe[1000]; ///指數對應的系數 int tmpcoe[1000]; //臨時系數 int n,m; int main(){ while(cin>>n>>m){ for(int i=0;i<=m;i++){ tmpcoe[i]=1; } memset(coe,0,sizeof(coe)); int a,b; cin>>a>>b; for(int i=1;i<n;i++){ //n個多項式,循環n-1次 int x,y; cin>>x>>y; for(int i=a;i<=b;i++){ //第一個多項式的每一項 與 第二個多項式每一項相乘 for(int j=x;j<=y;j++){ coe[i+j]+=tmpcoe[i]; //指數i+j的系數 } } a=a+x; b=b+y; for(int i=0;i<=m;i++){ tmpcoe[i]=coe[i]; coe[i]=0; } } cout<<tmpcoe[m]<<endl; } }
母函數