zoukankan      html  css  js  c++  java
  • Codeforces 913C

    913C - Party Lemonade

    思路:对于第i个话费cost[i],取min(cost[i],2*cost[i-1]),从前往后更新,这样就可以保证第n个的话费的性价比最高,那么从最高位开始贪心,取最优解。

    代码:

    #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 ll INF=0x3f3f3f3f3f3f3f3f;
    ll cost[35];
    int main(){
        ios::sync_with_stdio(false);
        cin.tie(0);
        int n;
        ll l;
        cin>>n>>l;
        for(int i=0;i<n;i++)cin>>cost[i];
        for(int i=1;i<n;i++)cost[i]=min(cost[i],cost[i-1]*2);
        ll ans=INF;
        ll sum=0;
        for(int i=n-1;i>=0;i--){
            ll need=l/(1ll<<i);
            sum+=need*cost[i];
            l-=need<<i;
            ans=min(ans,sum+(l>0)*cost[i]);
            //cout<<ans<<endl;
        }
        cout<<ans<<endl;
        return 0;
    }
  • 相关阅读:
    总结
    kafka
    kafka前传 JMS
    currentHashMap
    mapPartitionsWithIndex foreachPartitionAsync foreachPartition
    hbase
    hive
    zookeeper kafka storm
    flume的简单使用
    spring-data-jpa
  • 原文地址:https://www.cnblogs.com/widsom/p/8317230.html
Copyright © 2011-2022 走看看