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;
}


目录
相关文章
|
3月前
|
算法 C++
POJ 3740 Easy Finding题解
这篇文章提供了一个使用舞蹈链(Dancing Links)算法解决POJ 3740 "Easy Finding" 问题的C++代码实现,该问题要求找出矩阵中能够使每一列都恰好包含一个1的行集合。
poj 1455 Crazy tea party
说一下大概思路,如果是排成一排的n个人,如 1 2 3 4 5 6 7 8 我们要变成 8 7 6 5 4 3 2 1 需要交换 28次,找规律的话就是 n*(n-1)/2,但这道题是一个圈,要让他们顺序变反的话不一定1要在8的位置上去,4 3 2 1 8 7 6 5 这样也是反的,我们只要把n个人分成两部分,然后按拍成一条线的方法来出来两部分就OK了;
29 0
hdoj 1520 Anniversary party(树形dp)
我们可以把一个节点当做一个人,每个节点都有一个权重。按照题目意思,如果我们取了某个节点,那么他的父节点和子节点都是不能取的。按要求选取节点,使得选取节点的权重和最大。
37 0
|
机器学习/深度学习 Java
【Java每日一题,dfs】[USACO1.5]八皇后 Checker Challenge
【Java每日一题,dfs】[USACO1.5]八皇后 Checker Challenge
UVa12032 - The Monkey and the Oiled Bamboo(贪心)
UVa12032 - The Monkey and the Oiled Bamboo(贪心)
50 0
UVa11157 - Dynamic Frog(动态规划)
UVa11157 - Dynamic Frog(动态规划)
57 0
2019CCPC秦皇岛HDU - 6736 F - Forest Program(dfs找环 组合数学)
2019CCPC秦皇岛HDU - 6736 F - Forest Program(dfs找环 组合数学)
98 0
POJ-Silver Cow Party (最短路)
POJ-Silver Cow Party (最短路)
97 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
225 0
[HDU 7136] Jumping Monkey | 并查集 | 逆向思维