ZOJ 4027 Sequence Swapping(DP)题解】的更多相关文章

题意:一串括号,每个括号代表一个值,当有相邻括号组成()时,可以交换他们两个并得到他们值的乘积,问你最大能得到多少 思路:DP题,注定想得掉头发. 显然一个左括号( 的最远交换距离由他右边的左括号的最终位置决定,那么我们可以从右边开始做.我们用dp[i][j]表示第i个左括号交换到第j个位置后,他和他后面左括号所能得到的最大值.显然,dp[i][j] = i交换得到的值 + 后面左括号产生的最大值.而后面左括号能产生的最大值显然就是max(dp[i+1][k])其中j <= k <= n. 代…
Sequence Swapping Time Limit: 1 Second      Memory Limit: 65536 KB BaoBao has just found a strange sequence {<, >, <, >, , <, >} of length  in his pocket. As you can see, each element <, > in the sequence is an ordered pair, where…
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 seco…
全网唯一一篇dp题解 网上貌似全部都是哈希+二分(反正我是大概baidu了翻了翻)(还有人暴力AC了的..) 哈希还是相对于dp还是比较麻烦的. 而且正确性还有可能被卡(当然这个题不会) 而且还容易写错. 我就懒得写哈希了. 这个题,貌似和一个题目很像啊~~~ P1387 最大正方形 P1387这个题相信大家都会吧.. 不会的话看那就随便找篇题解.. 这个题就是最大正方形的加强版. 设$f[x1][y1][x2][y2]$表示,在第一个正方形中,以$(x1,y1)$为右下角,第二个正方形中以$(…
ZOJ Problem Set - 3822Domination(DP) problemCode=3822">题目链接 题目大意: 给你一个n * m的棋盘,每天都在棋盘上面放一颗棋子.直到这个棋盘上的每行每列都有至少有一颗棋子.求要用的天数的期望. 解题思路:         先求出不同摆法的棋盘的概率,然后在和天数相乘就是期望.         我们将棋盘划分为四个部分:当中一部分为每行没列都至少有一个棋子.         然后得出状态转移方程:         dp[x][y][k…
C. Longest Regular Bracket Sequence Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/problemset/problem/5/C Description This is yet another problem dealing with regular bracket sequences. We should remind you that a bracket sequence…
Arithmetic Sequence Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 51  Solved: 19[Submit][Status][Web Board] Description Giving a number sequence A with length n, you should choosingm numbers from A(ignore the order) which can form an arithmetic sequ…
BaoBao has just found a strange sequence {<, >, <, >, , <, >} of length in his pocket. As you can see, each element <, > in the sequence is an ordered pair, where the first element in the pair is the left parenthesis '(' or the rig…
题目链接:http://poj.org/problem?id=1141 题解:求已知子串最短的括号完备的全序列 代码: #include<iostream> #include<cstdio> #include<algorithm> #include<cstring> using namespace std; #define ll long long ; const int INF=0x3f3f3f3f; ][]; ][]; ]; int Find(int x…
本文出自:http://blog.csdn.net/svitter 原题:http://poj.org/problem?id=1141 题意:输出添加括号最少,并且使其匹配的串. 题解: dp [ i ] [ j ] 表示添加括号的个数, pos[ i][ j ] 表示 i , j 中哪个位置分开,使得两部分分别匹配. pos [ i ][ j ] 为-1的时候,说明i, j 括号匹配. 初始值置dp [ i ] [ i ]  = 1; 如果只有一个括号,那么匹配结果必然是差1. 首先判断括号是…