tjut 5396
来源:互联网 发布:淘宝网棉衣女装中长款 编辑:程序博客网 时间:2024/04/30 05:47
#include<stdio.h>#include<string.h>#include<algorithm>#include<iostream>#include<vector>#include<queue>#include<cmath>using namespace std;#define INF 0x3fffffff#define maxn 110typedef long long LL;const LL MOD = 1e9+7;LL A[maxn], C[maxn][maxn];char op[maxn];LL dp[maxn][maxn];int main(){ int n; A[0] = 1; for(int i=1; i<=100; i++) A[i] = (A[i-1] * i)%MOD; C[0][0] = 1; 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-1] + C[i-1][j])%MOD; } while(scanf("%d", &n) != EOF) { memset(dp, 0, sizeof(dp)); for(int i=1; i<=n; i++) scanf("%I64d", &dp[i][i]); scanf("%s", op+1); for(int L=2; L <= n; L++) { for(int i=1; i+L-1 <= n; i++) { int j = i + L - 1; dp[i][j] = 0; for(int k=i; k<j; k++) { LL t; if(op[k] == '*') t = (dp[i][k] * dp[k+1][j])%MOD; if(op[k] == '+') t = (dp[i][k]*A[j-k-1] + dp[k+1][j]*A[k-i])%MOD; if(op[k] == '-') t = (dp[i][k]*A[j-k-1] - dp[k+1][j]*A[k-i])%MOD; dp[i][j] = (dp[i][j] + t * C[j-i-1][k-i])%MOD; } } } printf("%I64d\n", (dp[1][n]+MOD)%MOD ); } return 0;}
0 0
- tjut 5396
- tjut 5289
- tjut 5288
- tjut 5294
- tjut 2586
- tjut 5296
- tjut 5297
- tjut 5299
- tjut 5384
- tjut 5387
- tjut 5386
- tjut 5381
- tjut 5400
- tjut 5399
- tjut 5398
- tjut 5412
- tjut 5410
- tjut 5416
- 依次把 11 个关键字插入到初始化为空的平衡二叉排序树中,在插入过程中平衡树条件如被破坏,得到的平衡二叉排序树的深度为()
- MySQL学习笔记三
- 把静态编译的QT添加到QTCreator当中创建新工程
- Android应用安装过程分析(二)
- Ajax请求Servlet返回文本 json html和XML数据并解析xml及responseText和responseXML的区别
- tjut 5396
- 下列哪个IP地址可以分配给一台计算机?
- NOIP2016#模拟考试 Day.1# T1 洗澡
- hdoj-1973-Prime Path
- 【C#】const和readonly的区别
- group_concat函数详解
- ARM Cortex-M Series Processors
- 【codeforces】HDD is Outdated Technology
- 百练 2815 城堡问题