HDU 5396 Expression(DP+组合数)(详解)
#include<stdio.h>
#include<string.h>
#include<algorithm>
#include<iostream>
#include<vector>
#include<queue>
#include<cmath>
using namespace std;
#define INF 0x3fffffff
#define maxn 110 typedef long long LL;
const LL MOD = 1e9+; LL A[maxn], C[maxn][maxn];
char op[maxn];
LL dp[maxn][maxn]; int main()
{
int n;
A[] = ;
for(int i=; i<=; i++)
A[i] = (A[i-] * i)%MOD;
C[][] = ;
for(int i=; i<=; i++)
{
C[i][] = ;
for(int j=; j<=i; j++)
C[i][j] = (C[i-][j-] + C[i-][j])%MOD;
} while(scanf("%d", &n) != EOF)
{
memset(dp, , sizeof(dp));
for(int i=; i<=n; i++)
scanf("%I64d", &dp[i][i]);
scanf("%s", op+); for(int L=; L <= n; L++)
{
for(int i=; i+L- <= n; i++)
{
int j = i + L - ;
dp[i][j] = ;
for(int k=i; k<j; k++)
{
LL t;
if(op[k] == '*')
t = (dp[i][k] * dp[k+][j])%MOD;
if(op[k] == '+')
t = (dp[i][k]*A[j-k-] + dp[k+][j]*A[k-i])%MOD;
if(op[k] == '-')
t = (dp[i][k]*A[j-k-] - dp[k+][j]*A[k-i])%MOD; dp[i][j] = (dp[i][j] + t * C[j-i-][k-i])%MOD;
}
}
} printf("%I64d\n", (dp[][n]+MOD)%MOD );
}
return ;
}
HDU 5396 Expression(DP+组合数)(详解)的更多相关文章
- HDU 1693 插头dp入门详解
放题目链接 https://vjudge.net/problem/22021/origin 给出一个n*m的01矩阵,1可走0不可通过,要求走过的路可以形成一个环且可以有多个环出现,问有多少不同的 ...
- 状压DP入门详解+题目推荐
在动态规划的题型中,一般叫什么DP就是怎么DP,状压DP也不例外 所谓状态压缩,一般是通过用01串表示状态,充分利用二进制数的特性,简化计算难度.举个例子,在棋盘上摆放棋子的题目中,我们可以用1表示当 ...
- hdu 5396 Expression(区间dp)
Problem Description Teacher Mai has n numbers a1,a2,⋯,anand n−1 operators("+", "-&quo ...
- HDU 5396 区间DP 数学 Expression
题意:有n个数字,n-1个运算符,每个运算符的顺序可以任意,因此一共有 (n - 1)! 种运算顺序,得到 (n - 1)! 个运算结果,然后求这些运算结果之和 MOD 1e9+7. 分析: 类比最优 ...
- 2015 Multi-University Training Contest 9 hdu 5396 Expression
Expression Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total ...
- 【动态规划】树形DP完全详解!
蒟蒻大佬时隔三个月更新了!!拍手拍手 而且是更新了几篇关于DP的文章(RioTian狂喜) 现在赶紧学习和复习一下树形DP.... 树形DP基础:Here,CF上部分树形DP练习题:Here \[QA ...
- poj1417 true liars(并查集 + DP)详解
这个题做了两天了.首先用并查集分类是明白的, 不过判断是否情况唯一刚开始用的是搜索.总是超时. 后来看别人的结题报告, 才恍然大悟判断唯一得用DP. 题目大意: 一共有p1+p2个人,分成两组,一组p ...
- Rikka with Subset HDU - 6092 (DP+组合数)
As we know, Rikka is poor at math. Yuta is worrying about this situation, so he gives Rikka some mat ...
- 数位DP模板详解
// pos = 当前处理的位置(一般从高位到低位) // pre = 上一个位的数字(更高的那一位) // status = 要达到的状态,如果为1则可以认为找到了答案,到时候用来返回, // 给计 ...
随机推荐
- 规范javascript书写
空白 缩进 换行限制 if while for do 2. 命名 常量 URL_CONFIG 变量 listLen 函数命名 调用函数 function setStyle(dom, name, v ...
- 10.13 noip模拟试题
Porble 1时间与空间之旅(tstrip.*) 题目描述 公元22××年,宇宙中最普遍的交通工具是spaceship.spaceship的出现使得星系之间的联系变得更为紧密,所以spaceship ...
- 关于NetworkInfo对象的isConnected()与isAvailable()
public class MainActivity extends Activity{ /** Called when the activity is first created. */ ...
- ViewPager + Fragment 实现类微信界面
在如今的互联网时代,微信已是一个超级App.这篇通过ViewPager + Fragment实现一个类似于微信的界面,之前有用FragmentTabHost实现过类似界面,ViewPager的实现方式 ...
- CI 笔记(1)
1. 下载CI,官方网站,目前3.x版本已经更新,2.2.6版本为2.x版本的最后的一个版本.为了和视频教材一致,使用CI 2.x版本 2. 目录结构,从application里面的,controll ...
- AFNETWORKING tabelView没有reloadData,报错unsupported URL
Error Domain=NSURLErrorDomain Code=-1002 "unsupported URL" UserInfo=0x7f9dc278aa60 {NSUnde ...
- 嵌入式css样式,写在当前的文件中
现在有一任务,把下面的“超酷的互联网”.“服务及时贴心”.“有趣易学”这三个短词文字字号修改为18px. 如果用内联式css样式的方法进行设置将是一件很头疼的事情(为每一个<span>标签 ...
- Tomcat 8熵池阻塞变慢详解(转)
Tomcat 8熵池阻塞变慢详解 作者:chszs,转载需注明.博客主页:http://blog.csdn.net/chszs Tomcat 8启动很慢,且日志上无任何错误,在日志中查看到如下信息: ...
- MySQL增删改查的常用操作指令总结
总结: 1.数据库操作: 创建库: create database db_name; 查询库: show databases; //显示所有的数据库 show create databases db_ ...
- SGU 222.Little Rooks
题意: 求在n*n(n<10)的棋盘上放k个车(水平竖直行走)的方案数. Solution SGU220的简化版.直接DP 显然当k>n时,ans=0; f[i][j]代表在前n行放了j个 ...