zoukankan      html  css  js  c++  java
  • Codeforces 855B

    855B - Marvolo Gaunt's Ring

    思路:①枚举a[j],a[i]和a[k]分别用前缀最小值最大值和后缀最小值和后缀最大值确定。

       ②dp,dp[i][j]表示到第j为止,前i+1个值加起来的最大值。

    代码:

    代码①:

    #include<bits/stdc++.h>
    using namespace std;
    #define ll long long
    const int N=1e5+5;
    const int INF=0x3f3f3f3f;
    
    int a[N];
    int premx[N];
    int premn[N];
    int sufmx[N];
    int sufmn[N];
    int main()
    {
        ios::sync_with_stdio(false);
        cin.tie(0);
        ll n,p,q,r;
        cin>>n>>p>>q>>r;
        for(int i=1;i<=n;i++)cin>>a[i];
        premx[0]=-INF,premn[0]=INF;
        for(int i=1;i<=n;i++)premx[i]=max(premx[i-1],a[i]),premn[i]=min(premn[i-1],a[i]);
        sufmx[n+1]=-INF,sufmn[n+1]=INF;
        for(int i=n;i>=1;i--)sufmx[i]=max(sufmx[i+1],a[i]),sufmn[i]=min(sufmn[i+1],a[i]);
        
        ll ans=-8000000000000000000;
        for(int i=1;i<=n;i++)ans=max(ans,max(p*premx[i],p*premn[i])+q*a[i]+max(r*sufmx[i],r*sufmn[i]));
        cout<<ans<<endl;
        return 0; 
    } 

    代码②:

    #include<bits/stdc++.h>
    using namespace std;
    #define ll long long
    #define pb push_back
    #define mem(a,b) memset(a,b,sizeof(a))
    
    const int N=1e5+5;
    const ll _INF=-8e18;
    ll dp[3][N];
    int a[N];
    int main()
    {
        ios::sync_with_stdio(false);
        cin.tie(0);
        ll p,q,r,n;
        cin>>n>>p>>q>>r;
        for(int i=1;i<=n;i++)cin>>a[i];
        
        dp[0][0]=_INF;
        dp[1][0]=_INF;
        dp[2][0]=_INF;
        for(int i=1;i<=n;i++)
        {
            dp[0][i]=max(dp[0][i-1],p*a[i]);
            dp[1][i]=max(dp[1][i-1],dp[0][i]+q*a[i]);
            dp[2][i]=max(dp[2][i-1],dp[1][i]+r*a[i]);
        }
        cout<<dp[2][n]<<endl;
        return 0;
    } 
  • 相关阅读:
    软件安装
    ARIMA
    解决数据分析中的小知识点及问题
    Django详解之路由系统、中间件
    hdoj 1018
    程序员编程技术迅速提高终极攻略 (转自csdn)
    chapter 5:一个简单的规律问题。
    chapter 4:贪心
    7种qsort排序方法
    chapter 2:hdoj 1031(结构体的使用)
  • 原文地址:https://www.cnblogs.com/widsom/p/7592039.html
Copyright © 2011-2022 走看看