HDU 3506 Monkey Party(动态规划)

简介: HDU 3506 Monkey Party(动态规划)

文章目录

  • 题目
  • AC代码


题目

本题链接:Monkey Party

本博客给出本题截图

1.png

AC代码

代码

#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
const int N = 2010, INF = 0x3f3f3f3f;
int f[N][N];
int t[N];
int s[N];
int w[N][N];
int main()
{
    int n;
    while(~scanf("%d", &n))
    {
        for (int i = 1; i <= n; i ++ )
        {
            cin >> t[i];
            t[i + n] = t[i];
        }
        memset(f, 0x3f, sizeof f);
        for (int i = 1; i <= 2 * n; i ++ ) 
        {
            f[i][i] = 0;
            w[i][i] = i;
            s[i] = s[i - 1] + t[i];
        }
        for (int len = 2; len <= n; len ++ )
            for (int i = 1; i + len - 1 <= 2 * n; i ++ )
            {
                int j = i + len - 1;
                for (int k = w[i][j - 1]; k <= w[i + 1][j]; k ++ )
                {
                    if (f[i][j] > f[i][k] + f[k + 1][j] + s[j] - s[i - 1])
                    {
                        f[i][j] = f[i][k] + f[k + 1][j] + s[j] - s[i - 1];
                        w[i][j] = k;
                    }
                }
            }
        int res = INF;
        for (int i = 1; i <= n; i ++ )
            res = min(res, f[i][i + n - 1]);
        cout << res << endl;
    }
    return 0;
}


目录
相关文章
|
算法
light oj 1258 - Making Huge Palindromes(KMP)
ight oj里这个题目是属于KMP分类的,但乍看好像不是kmp,因为只有一个字符串。要想的到一个回文串,把该字符串翻转接到原串后面必然是一个回文串,但并不一定是最短的。我们必须考虑怎么把两个串尽量融合在一起,这就要看翻转串的前段与原串的后段有多少是匹配的了,这里就用到了KMP算法。
38 1
codeforces 317 A Perfect Pair
我先排除了输出-1的,然后再考虑如何计算最小的步数。我们主要在每一步中最小一个加上另一个就可以了,这是朴素的求法,但可能出现这样的情况 比如 -100000000 1 10000000 这样的话会循环100000000多次,肯定超时,所以我们要加快速度。
53 0
UVa12032 - The Monkey and the Oiled Bamboo(贪心)
UVa12032 - The Monkey and the Oiled Bamboo(贪心)
53 0
|
Perl
AtCoder Beginner Contest 217 F - Make Pair (区间dp)
AtCoder Beginner Contest 217 F - Make Pair (区间dp)
128 0
|
人工智能 Java
[HDU 7136] Jumping Monkey | 并查集 | 逆向思维
Jumping Monkey Time Limit: 8000/4000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others) Total Submission(s): 747 Accepted Submission(s): 360
231 0
[HDU 7136] Jumping Monkey | 并查集 | 逆向思维
HDU-1048,The Hardest Problem Ever(字符串处理)
HDU-1048,The Hardest Problem Ever(字符串处理)

热门文章

最新文章