• YbtOj练习:贪心 1最大积分


    http://noip.ybtoj.com.cn/contest/12/problem/1

     这道题的题意描述有问题。。。。问题很大,导致我WA了无数次。

     如果看这句话很容易就会理解错。

     在我WA了n次之后看到了这两个字,哦豁,原来这里的意思是当你在第i级时,如果买的总件数达到了t[i],那么就可以升级。

    #include<bits/stdc++.h>
    using namespace std;
    typedef unsigned long long ull;
    const int N=105;
    ull t[N],sum,ans;//sum:总件数 
    int n,m;
    struct node{
        ull k,c;
        bool operator < (const node &G)const
        {
            return c<G.c;
        }
    }a[N];
    int main()
    {
        cin>>n;
        for(int i=1;i<=n;i++) cin>>a[i].k>>a[i].c;
        cin>>m;
        for(int i=1;i<=m;i++) cin>>t[i];
        t[m+1]=1e13;
        sort(a+1,a+n+1);
        int Lv=1;
        for(int i=1;i<=n;i++)
        {
            while(sum+a[i].k>=t[Lv])
            {
                ans+=(t[Lv]-sum)*a[i].c*Lv;
                a[i].k-=t[Lv]-sum;
                sum=t[Lv];
                Lv++;
            }
            ans+=a[i].k*a[i].c*Lv;
            sum+=a[i].k;
        }
        cout<<ans;
        return 0;
    }
  • 相关阅读:
    抽卡 状压DP+期望DP+系数递推
    20190903考试反思
    20190823考试反思
    约瑟夫类问题研究
    树位DP
    20190823考试反思
    20190820考试反思
    20190818考试反思
    20190817考试反思
    PowerBuilder--Aes128加解密
  • 原文地址:https://www.cnblogs.com/smartljy/p/13426258.html
Copyright © 2020-2023  润新知