link:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=4027

题意:

  有一个括号序列,每个括号对应一个值,现在可以使得相邻的()进行交换,并得到两个值的乘积,问最后能得到的最大值。

思路:

  从后向前考虑,取后缀最大值。

#include <bits/stdc++.h>

using namespace std;

#define pb push_back
#define fi first
#define se second typedef long long ll;
typedef pair<int, int> pii; const int inf = 0x3f3f3f3f;
const int maxn = 1e3+; char str[maxn];
ll dp[maxn],mul[maxn],a[maxn];
int main(){
int T; scanf("%d", &T);
while(T--) {
int n; scanf("%d", &n);
scanf("%s", str+);
for(int i=; i<=n; i++) scanf("%lld", &a[i]);
for(int i=; i<=n; i++) dp[i] = ;
ll ans = ;
for(int i=n; i>=; i--) {
if(str[i] == '(') {
ll sum = ;
for(int j=; j<=n; j++) mul[j] = ;
for(int j=i; j<=n; j++) {
if(str[j] == ')')sum += a[i] * a[j];
mul[j] = sum;
}
ll mx = -2e18;
for(int j=n; j>; j--) {
mx = max(mx, dp[j]);
dp[j] = mx + mul[j];
ans = max(ans, dp[j]);
}
}
}
printf("%lld\n", ans);
}
return ;
}

最新文章

  1. Linux安全基础:vi的使用
  2. 数组类型与sizeof与指针的引用
  3. 如何让nodejs同步操作
  4. win10搭建代理服务器实现绕过校园网的共享限制--从入门到放弃
  5. JAVA缓存技术之EhCache
  6. Ubuntu/Debian 安装lxml的正确方式
  7. margin的重叠现象
  8. win2003 sp2+iis 6.0上部署.net 2.0和.net 4.0网站的方法
  9. Linux命令——创建删除文件
  10. sql server 调优----索引缺失
  11. ScalaPB(1): using protobuf in akka
  12. C++解析九-数据抽象
  13. Redis怎么保持缓存与数据库一致性?
  14. POJ 2876
  15. js通过class获取元素
  16. erp前端项目总结
  17. 潜类别模型(Latent Class Modeling)
  18. [SoapUI]怎样配置SoapUI运行的不同环境,并在Jenkins上面通过命令调用不用的环境
  19. CentOS 7_64位系统下搭建Hadoop_2.8.0分布式环境
  20. August 01st 2017 Week 31st Tuesday

热门文章

  1. 使用f12定位bug
  2. poj 1131 Octal Fractions(高精度小数进制转换) Java
  3. NDK jni mk文件 so文件 巴啦啦 初体验
  4. FB的新专利竟要监看使用者的脸
  5. JavaSE(二)标识符,关键字,数据类型
  6. ajax定义与开发最简五步骤
  7. Css3动画效果,彩色文字效果,超简单的loveHeart
  8. VMware安装Centos7虚拟机
  9. 深圳市宁远电子大骆驼DLT3288C-韦根输入接口说明
  10. Dubbo(一):Dubbo运行原理