Codeforces1140D. Minimum Triangulation

Posted gredcomet

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Codeforces1140D. Minimum Triangulation相关的知识,希望对你有一定的参考价值。

题目链接

本题是区间dp里的三角剖分,板子题,dp[i][j]表示凸多边形i-j构成的最值,转移方程为dp[i][j] = min/max(dp[i][k]+dp[k][j]+w[i,j,k])(i<k<j),表示将凸多边形i-j以k为分界,分成i-k,k-j以及三角形i-j-k

技术图片
#include<bits/stdc++.h>
using namespace std;
#define lowbit(x) ((x)&(-x))
typedef long long LL;
typedef pair<int,int> pii;

const LL INF = 0x3f3f3f3f3f3f3f3f;
const int maxn = 505;
LL dp[maxn][maxn];


void run_case() {
    int n; cin >> n;
    for(int i = n-2; i >= 1; --i) {
        for(int j = i+2; j <= n; ++j) {
            dp[i][j] = INF;
            for(int k = i+1; k < j; ++k)
                dp[i][j] = min(dp[i][j], dp[i][k]+dp[k][j]+i*j*k);
        }
    }
    cout << dp[1][n];
}
 
int main() {
    ios::sync_with_stdio(false), cin.tie(0);
    cout.flags(ios::fixed);cout.precision(10);
    //int t; cin >> t;
    //while(t--)
    run_case();
    cout.flush();
    return 0;
}
View Code

 

以上是关于Codeforces1140D. Minimum Triangulation的主要内容,如果未能解决你的问题,请参考以下文章

Codeforces 805 D Minimum number of steps

codeforces 1140E Palindrome-less Arrays

Codeforces 1140F 线段树 分治 并查集

Codeforces 1140G Double Tree 倍增 + dp

CodeForces - 1140E Palindrome-less Arrays

codeforces-1027 C Minimum Value Rectangle