Hdu 2082 找單詞 母函式

2021-10-14 16:37:57 字數 812 閱讀 5605

很明顯是一道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的次方就代表價值,係數表示情況數

於是可以暴力了

#include

using

namespace std;

#define ll long long

const

int n=

105,m=26;

ll dp[2]

[n];

int a[m+

5];int

main()

ll ans=0;

for(

int i=

1;i<=

50;i++

) ans+

=dp[f]

[i];

printf

("%lld\n"

,ans);}

return0;

}

HDU 2082 找單詞 母函式

題目 題意 已知有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 ...

母函式 找單詞(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 找單詞(母函式)

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