zoukankan      html  css  js  c++  java
  • CodeForces 767E(贪心)

    CodeForces 767E

    题意:有100元的纸币和1元的硬币,某同学有无限多的纸币和 m 个硬币,并决定接下来的 n 天去食堂每天花费 c[i] 元。已知食堂大叔在第 i 天找零 x 元的话,不满意度会增加 w[i],问最小不满意度。

    题解:按顺序先直接使用手上有的硬币,当手上硬币剩余为负数的时候,说明前面一定会出现有一天需要多使用一张纸币,取的策略就是取前面的代价 w[i]*(100-a[i]%100) 最少的一次,然后手里剩余硬币 +100。用优先队列维护即可。

    (代码略挫)

     1 #include <cstdio>
     2 #include <cstring>
     3 #include <iostream>
     4 #include <algorithm>
     5 #include <queue>
     6 using namespace std;
     7 typedef long long LL;
     8 struct node{
     9     LL id,val;
    10     bool operator<(const node &a)const{
    11         return val>a.val;
    12     }
    13 };
    14 LL n,m;
    15 LL c[100005];
    16 LL w[100005];
    17 LL vis[100005];
    18 LL ans;
    19 int main(){
    20     scanf("%lld%lld",&n,&m);
    21     for(LL i=1;i<=n;i++)
    22         scanf("%lld",&c[i]);
    23     for(LL i=1;i<=n;i++)
    24         scanf("%lld",&w[i]);
    25     priority_queue<node> q;
    26     for(LL i=1;i<=n;i++){
    27         if(c[i]%100==0) continue;
    28         q.push((node){i,w[i]*(100-c[i]%100)});
    29         m-=c[i]%100;
    30         if(m<0){
    31             if(!q.empty()){
    32                 vis[q.top().id]=1;
    33                 ans+=q.top().val;
    34                 q.pop();
    35                 m+=100;
    36             }
    37         }
    38     }
    39     printf("%lld
    ",ans);
    40     for(LL i=1;i<=n;i++){
    41         if(vis[i]){
    42             printf("%lld %lld
    ",c[i]/100+1,0);
    43         }
    44         else{
    45             printf("%lld %lld
    ",c[i]/100,c[i]%100);
    46         }
    47     }
    48 
    49     return 0;
    50 }
    Psong
  • 相关阅读:
    no route to host
    修改文件失败,提示E509: 无法创建备份文件 (请加 ! 强制执行)
    OAuth2.0的四种授权模式
    Django--JWT认证
    Django--数据库ORM操作
    DRF中限流、过滤、排序、分页
    Django框架中序列化与反序列化与字段验证
    21.Django三种风格的模型继承
    20.第三方微博登录Django+Vue
    博客园图片点击放大功能
  • 原文地址:https://www.cnblogs.com/N-Psong/p/6476863.html
Copyright © 2011-2022 走看看