• T107511 花朵


    题目链接

    满分做法:

    考虑DP,dp[i]表示表示前i个符合条件的最小合并次数,再记录一个minn[i]表示仅考虑前 i 朵小花,在操作次数最少的前提下,最终合并得到的最右的小花的最低美丽值。

    倒叙转移,保证最小合并次数的前提下,最右值最小。

    #include<queue>
    #include<cstring>
    #include<cstdio>
    #include<algorithm>
    #include<cmath>
    #include<iostream>
    using namespace std;
    typedef long long ll;
    const int maxm=5e4+7;
    int n;
    int a[maxm];
    int dp[maxm],minn[maxm];//dp[i]表示前i个符合条件的最小合并次数,minn[i]表示仅考虑前 i 朵小花,在操作次数最少的前提下,最终合并得到的最右的小花的最低美丽值 
    int sum[maxm];
    int main()
    {
     scanf("%d",&n);
     for(int i=1;i<=n;i++)
     scanf("%d",a+i),sum[i]=sum[i-1]+a[i];
     memset(dp,63,sizeof(dp));
     dp[1]=dp[0]=0;
     minn[1]=a[1];
     for(int i=2;i<=n;i++)
     {
      for(int j=i-1;j>=0;j--)
      {
         if(minn[j]<=sum[i]-sum[j])
         {
           if(dp[j]+i-j-1<dp[i])
           dp[i]=dp[j]+i-j-1,minn[i]=sum[i]-sum[j];
         }
      }
     }
     printf("%d
    ",dp[n]);
     return 0;	
    }
    
  • 相关阅读:
    Exception和Error有什么区别?
    网络流量劫持的含义
    安全术语:
    加载相关
    10、接到任务后的整个测试前准备流程总结
    fiddler工具栏数据解释
    HTTP的请求头标签 If-Modified-Since
    VueStudyDemo
    Vue从入门到放弃
    TypeScript初体验
  • 原文地址:https://www.cnblogs.com/lihan123/p/11803415.html
Copyright © 2020-2023  润新知