HDU 4283 You Are the One(动态规划)

简介: HDU 4283 You Are the One(动态规划)

文章目录

  • 题目
  • AC代码


题目

本题链接:You Are the One

本博客给出本题截图

678.png

AC代码

#include <iostream>
#include <cstring>
#include <algorithm>
#include <cstdio>
using namespace std;
const int N = 110;
int f[N][N];
int d[N];
int s[N];
int main()
{
    int T;
    cin >> T;
    int t = 1;
    while (T -- )
    {
        int n;
        cin >> n;
        for (int i = 1; i <= n; i ++ ) cin >> d[i];
        memset(f, 0, sizeof f);
        //memset(f, 0x3f, sizeof f);
        memset(s, 0, sizeof s);
        for (int i = 1; i <= n; i ++ ) s[i] = s[i - 1] + d[i];
        for (int i = 1; i <= n; i ++ ) f[i][i] = 0;
        for (int len = 2; len <= n; len ++ )
            for (int i = 1; i + len - 1 <= n; i ++ )
            {
                int j = i + len - 1;
                f[i][j] = 0x3f3f3f3f;
                for (int k = i; k <= j; k ++ )
                {
                    int w = (k - i) * d[i] + (k - i + 1) * (s[j] - s[k]);
                    f[i][j] = min(f[i][j], f[i + 1][k] + f[k + 1][j] + w);
                }
                /*
                for (int k = 1; k <= len; k ++ )
                {
                    int w = d[i] * (k - 1) + k * (s[j] - s[i + k - 1]);
                    f[i][j] = min(f[i][j], f[i + 1][i + k - 1] + f[i + k][j] + w);
                } 
                */
            }
        printf("Case #%d: %d\n", t ++, f[1][n]);
    }
    return 0;
} 


目录
相关文章
|
8月前
|
Java Go 图形学
一篇文章讲明白HDU4044GeoDefense(动态规划)
一篇文章讲明白HDU4044GeoDefense(动态规划)
35 0
|
9月前
|
Java
hdu-1869-六度分离(dijkstra)
hdu-1869-六度分离(dijkstra)
56 0
|
9月前
|
自然语言处理 算法
KMP算法(A + B for you again—HDU - 1867 )
KMP算法(A + B for you again—HDU - 1867 )
|
机器学习/深度学习 Cloud Native Go
337.打家劫舍 III:动态规划
这是力扣上的 337. 打家劫舍 III,难度为 中等。
101 0
|
测试技术
HDU-1232,畅通工程(并查集)
HDU-1232,畅通工程(并查集)
|
算法 机器学习/深度学习