zoukankan      html  css  js  c++  java
  • 华丽转身 题解(dp)

    题目大意

    给你n次考试,m个人,你可以控制自己在第i次考试的名次为\([l[i],r[i]]\)

    若第i-1次考试排名x,第i次考试排名为y

    若y<=x/2 则可以获得num[i]的值

    求你通过控制自己的名次最终可以获得的值

    题目思路

    设dp[i]为经历1-i次考试后的最大值

    表述好难啊......

    感觉看代码可以理解

    复杂度为\(O(n*62)\)

    代码

    #include<bits/stdc++.h>
    #define fi first
    #define se second
    #define debug cout<<"I AM HERE"<<endl;
    using namespace std;
    typedef long long ll;
    const int maxn=1e5+5,inf=0x3f3f3f3f,mod=1e9+7;
    const int eps=1e-6;
    ll n,m,ans;
    ll l[maxn],r[maxn],num[maxn];
    ll dp[maxn];
    signed main(){
        cin>>n>>m;
        for(int i=1;i<=n;i++){
            cin>>l[i]>>r[i]>>num[i];
        }
        for(int i=1;i<=n;i++){
            ll cur=l[i],sum=0;
            dp[i]=dp[i-1];
            for(int j=i-1;j>=1;j--){
                cur*=2;
                if(cur>r[j]) break;
                cur=max(cur,l[j]);
                sum+=num[j+1];
                dp[i]=max(dp[i],dp[j-1]+sum);
            }
        }
        cout<<dp[n]<<endl;
        return 0;
    }
    
    
    不摆烂了,写题
  • 相关阅读:
    SpringBoot定制修改Servlet容器
    springboot配置i18n
    idea properties编码问题
    多线程分页查询
    浏览器 私有属性&内核
    css添加样式的四种方式
    html、css、js注释
    JS中的 变量提升
    ECMAScript
    NOSCRIPT标签的用处
  • 原文地址:https://www.cnblogs.com/hunxuewangzi/p/14354656.html
Copyright © 2011-2022 走看看