HDU5396 Expression(经典区间dp+组合数学)
发布日期:2021-06-30 10:24:12 浏览次数:2 分类:技术文章

本文共 1680 字,大约阅读时间需要 5 分钟。

定义 f [ i ] [ j ] f[i][j] f[i][j]为区间 [ i , j ] [i,j] [i,j]所有方案数的和

如何由小区间递推 f [ i ] [ j ] ? f[i][j]? f[i][j]?

考虑枚举最后合并 [ i , j ] [i,j] [i,j]的运算符 k k k

k k k位置是乘法

[ i , k ] [i,k] [i,k]的不同方案数结果是 a 1 , a 2 . . . a x a_1,a_2...a_x a1,a2...ax

[ k + 1 , j ] [k+1,j] [k+1,j]的不同方案数的结果是 b 1 , b 2 . . . b y b_1,b_2...b_y b1,b2...by

相乘是 ∑ i = 1 x ∑ j = 1 y a i ∗ b j = ( ∑ i = 1 x a i ) ∗ ( ∑ j = 1 y b j ) \sum\limits_{i=1}^{x}\sum\limits_{j=1}^{y}a_i*b_j=(\sum\limits_{i=1}^{x}a_i)*(\sum\limits_{j=1}^{y}b_j) i=1xj=1yaibj=(i=1xai)(j=1ybj)

也就是 f [ i ] [ k ] ∗ f [ k + 1 ] [ j ] f[i][k]*f[k+1][j] f[i][k]f[k+1][j]

k k k位置是加法呢??

相加是 ∑ i = 1 x ∑ j = 1 y ( a i + b j ) \sum\limits_{i=1}^{x}\sum\limits_{j=1}^{y}(a_i+b_j) i=1xj=1y(ai+bj)

可以看到每个 a i a_i ai被加了 y y y次,每个 a j a_j aj被加了 x x x

其实 x x x就是 ( k − i ) ! (k-i)! (ki)!就是运算符的阶乘, y y y就是 ( j − k ) ! (j-k)! (jk)!

减法也是同理.

但是你以为就这么结束了吗???

注意虽然在区间 [ i , k ] [i,k] [i,k] [ k + 1 , j ] [k+1,j] [k+1,j]的运算顺序确定

但如果合并在一起还需要变化

也就是在 j − i j-i ji个操作符运算顺序选出 k − i k-i ki个按顺序放 [ i , k ] [i,k] [i,k]

另外的玩顺序放 [ k + 1 , j ] [k+1,j] [k+1,j]的运算符,这样就完美了…

#include 
using namespace std;#define int long longconst int maxn = 109;const int mod = 1e9+7;int n,f[maxn][maxn],w[maxn],c[maxn][maxn],fac[maxn];char a[maxn];void init(){
fac[0] = c[0][0] = 1; for(int i=1;i<=100;i++) fac[i]=fac[i-1]*i%mod; for(int i=1;i<=100;i++) {
c[i][0]=1; for(int j=1;j<=i;j++) c[i][j] = ( c[i-1][j]+c[i-1][j-1] )%mod; }}signed main(){
init(); while( cin >> n ) {
for(int i=1;i<=n;i++) cin >> w[i],f[i][i] = w[i]; cin >> (a+1); for(int l=2;l<=n;l++) for(int i=1;i+l-1<=n;i++) {
int j = i+l-1; f[i][j] = 0; for(int k=i;k

转载地址:https://issue-is-vegetable.blog.csdn.net/article/details/109729580 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:HDU 5900 QSC and Master(稍有技巧的区间dp)
下一篇:HDU5273 Dylans loves sequence(树状数组或区间dp)

发表评论

最新留言

路过按个爪印,很不错,赞一个!
[***.219.124.196]2024年04月20日 04时34分42秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章