和谐宿舍2

Posted morrowwind

tags:

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

#include <bits/stdc++.h>
using namespace std;
const int maxn=100+10;
//开新木板不一定要刚好一样大,可以比i大
//不开的情况不考虑,因为开了的情况因为开的大小由最大值确定,所以包含了不开的情况
//他给的测试数据有迷惑性
//这个题根据经验想到了要枚举,在根据数据发现可以多开 => 枚举最后一个木板包含的数目,并用最大值开那个木板
//可以多枚举,反正取最大值,只要合法,比如不确定某个值,那就合法枚举然后max,因为无法确定i-1的最优情况的
int n,dp[maxn][maxn],a[maxn],k,s[maxn][maxn];
int main() {
    cin>>n>>k;
    memset(dp,0x3f, sizeof(dp));
    for(int i=1;i<=n;i++) cin>>a[i];
    //获得区间内的最大值
    for(int i=1;i<=n;i++){
        int m=0;
        for(int j=i;j<=n;j++){
            m=max(m,a[j]);
            s[i][j]=m;
        }
    }
    //初始化一个木板的情况,因为一个木板的情况要开
    for(int i=0;i<=n;i++) dp[i][0]=dp[0][i]=0;
    for(int i=1;i<=n;i++) dp[i][1]=s[1][i]*i;
    for(int i=2;i<=n;i++){
        for(int j=2;j<=k;j++){
            for(int p=1;p<i;p++){
                dp[i][j]=min(dp[i][j],dp[p][j-1]+s[p+1][i]*(i-p));
            }
        }
    }
    cout<<dp[n][k]<<endl;
    return 0;
}

 

以上是关于和谐宿舍2的主要内容,如果未能解决你的问题,请参考以下文章

和谐宿舍2

代码一次触发 2 个函数 |不和谐.py

疫情封校,在宿舍学习数据结构——栈(Stack)详解(实例代码&&各接口代码)

基于SSM+LayUI的宿舍管理系统设计与实现

我宿舍哥们,写代码两年,裸辞,之后...

c语言怎么二进制文件操作?