HDU 2082 找單詞 母函式

2021-06-28 18:34:02 字數 804 閱讀 4745

題目:

題意:已知有26種數字(1,2,3,4......26),然後輸入26個數(m1,m2,m3,....m26),分別代表每個數字的個數,求出總值不超過50的方案數。

分析:由於每種數字各選多少個互不影響。

對於數字1,有m1個,用多項式(1+x+x^2+x^3+....+x^m1)表示選數字1的總方案,1(x^0)表示不選,x(x^1)表示選乙個1,x^2表示選兩個1,.......,x^m1表示選m1個1。

對於數字2,有m2個,用多項式(1+x^2+x^4+x^6+.....+x^(2*m2))表示選數字2的總方案,1表示不選,x^2表示選乙個2,x^4表示選兩個2,.......,x^(2*m2)表示選m2個2。

。。。。。。

構造母函式如下:

g(x)=(1+x+x^2+x^3+....+x^m1)*(1+x^2+x^4+x^6+.....+x^(2*m2))......(1+x^26+x^52+....+x^(26*m26

))展開後如下:

g(x)=1+(p1

)x+(p2

)x^2+(p3)x^3+........

x指數冪代表總值,x的係數代表其方案數。

**:

#include  #include #include using namespace std;

int main()

int ans=0;

for(i=1;i<=50;i++)

ans+=a[i];

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

}return 0;

}

母函式 找單詞(hdu2082)

題目描述 假設有x1個字母a,x2個字母b,x26個字母z,同時假設字母a的價值為1,字母b的價值為2,字母z的價值為26。那麼,對於給定的字母,可以找到多少價值 50的單詞呢?單詞的價值就是組成乙個單詞的所有字母的價值之和,比如,單詞acm的價值是1 3 14 18,單詞hdu的價值是8 4 21...

Hdu 2082 找單詞 母函式

很明顯是一道dp,但是現在在學生成函式了就得用生成函式的思維去做題,每種字元可以取0 a i 個,那麼算式可以寫成 i 126 1 xi x2i xa i i prod limits 1 x x x i 1 26 1 xi x 2i x a i i x的次方就代表價值,係數表示情況數 於是可以暴力了...

hdu 2082 找單詞(母函式)

題意 假設有x1個字母a,x2個字母b,x26個字母z,同時假設字母a的價值為1,字母b的價值為2,字母z的價值為26。那麼,對於給定的字母,可以找到多少價值 50的單詞呢?單詞的價值就是組成乙個單詞的所有字母的價值之和,比如,單詞acm的價值是1 3 14 18,單詞hdu的價值是8 4 21 3...