1. 程式人生 > >母函數

母函數

不但 space mit 一個 php 含義 eof set light

理解母函數: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


Problem Description 轉眼到了收獲的季節,由於有TT的專業指導,Lele獲得了大豐收。特別是水果,Lele一共種了N種水果,有蘋果,梨子,香蕉,西瓜……不但味道好吃,樣子更是好看。

於是,很多人們慕名而來,找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個。

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;
	}	
}

  

母函數