博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hdu 5396 Expression
阅读量:6801 次
发布时间:2019-06-26

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

太弱经常暴露智商.....

最近刷的个个dp都是区间,记忆化搜索也区间

然而窝组合数递推不会,规律推错了也不造,orz~~~

这题就找个规律,直接记忆化搜索干就是了,没什么难得

贴一发丑丑的代码,匿了

#include
#include
#include
using namespace std;#define ll __int64const int mod=1e9+7;const int maxn=108;int a[maxn];char b[maxn];ll dp[maxn][maxn];ll pig[maxn][maxn],jie[maxn];void init(){ int i,j; for(i=0;i<=100;i++) { pig[i][0]=pig[i][i]=1; for(j=1;j
=1&&r-i-1>=1) { sum=(sum+pig[r-l-1][i-l]*(dp[l][i]*dp[i+1][r]%mod))%mod; } else sum=(sum+dp[l][i]*dp[i+1][r])%mod; } if(b[i-1]=='-') { if(i-l>=1&&r-i-1>=1) { sum=(sum+pig[r-l-1][i-l]* ((jie[r-i-1]*dp[l][i]-jie[i-l]*dp[i+1][r])%mod))%mod; } else sum=(sum+jie[r-i-1]*dp[l][i]-jie[i-l]*dp[i+1][r])%mod; } if(b[i-1]=='+') { if(i-l>=1&&r-i-1>=1) { sum=(sum+pig[r-l-1][i-l]* ((jie[r-i-1]*dp[l][i]+jie[i-l]*dp[i+1][r])%mod))%mod; } else sum=(sum+jie[r-i-1]*dp[l][i]+jie[i-l]*dp[i+1][r])%mod; } } dp[l][r]=sum;}int main(){ int i,j,n; ll sum; init(); initjie(); while(scanf("%d",&n)==1) { for(i=1;i<=n;i++) scanf("%d",&a[i]); scanf("%s",b); memset(dp,-1,sizeof(dp)); dfs(1,n); printf("%I64d\n",(dp[1][n]+mod)%mod); } return 0;}

 

转载于:https://www.cnblogs.com/bitch1319453/p/4740729.html

你可能感兴趣的文章
[Leetcode] Container With Most Water
查看>>
查看版本信息的命令
查看>>
Linux搭建SVN服务器
查看>>
UML 之 数据流图(DFD)
查看>>
ReiserFS与EXT3的比较
查看>>
利用CSS3打造一组质感细腻丝滑的按钮
查看>>
hadoop中文官网
查看>>
phpQuery—基于jQuery的PHP实现(转)
查看>>
[.net 面向对象程序设计进阶] (11) 序列化(Serialization)(三) 通过接口 IXmlSerializable 实现XML序列化 及 通用XML类...
查看>>
codeforces 236A . Boy or Girl(串水问题)
查看>>
android消息推送
查看>>
java:如何让程序按要求自行重启?
查看>>
iOS:本地数据库sqlite的介绍
查看>>
python3 post方式上传文件。
查看>>
MVC 模型绑定
查看>>
android 时间对话框 TimePickerDialog简介
查看>>
href="javascript:void(0)"
查看>>
我的css释疑-float line-height inline-block vertical-align
查看>>
《Pro Android Graphics》读书笔记之第四节
查看>>
OC与Swift混编
查看>>