news 2026/4/16 18:45:42

CF767E-Change-free

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
CF767E-Change-free

CF767E-Change-free

题目大意

你接下来n nn天回去食堂吃饭,而且现在你已经决定好了吃什么,所以你在接下来的第i ii天,花费c i c_ici元。

交易时只允许使用1 11元的硬币和100 100100元的纸币,你初始有m mm硬币和无限多的纸币。在其中的某些天你可能不够正好支付c i c_ici元,所以会面临找零。但是收银员在找零时会产生不满。如果收银员在第i ii天找了x xx纸币和硬币。那么会产生x ⋅ w i x \cdot w_ixwi点不满。收银员总是尽量用最少的硬币和纸币找零。

你希望使得收银员总不满尽可能小。你需要确认在接下来n nn天的最小总不满和如何支付的方案。

题解

考虑贪心,现在手上有的硬币如果满足当天所需,则尽可能使用。否则就找到在此之前不满程度最小的一天,来找零。对于被找零的那天,本身花了c i % 100 c_i \% 100ci%100元,现在不仅没花,而且获得了100 − c i % 100 100-c_i \% 100100ci%100元,所以一次找零的贡献是固定的100 100100。因此对于每一天来说都有一个固定的不满,和一样的贡献。所以用优先队列维护不满最小值。每次取最小值即可。

#include<bits/stdc++.h>#defineiosios::sync_with_stdio(false);cin.tie(0);cout.tie(0);#defineumapunordered_map#defineendl'\n'usingnamespacestd;usingi128=__int128;constintmod=1e9+7;template<typenameT>voidread(T&x){x=0;intf=1;charc=getchar();for(;!isdigit(c);c=getchar())if(c=='-')f=-1;for(;isdigit(c);c=getchar())x=(x<<1)+(x<<3)+(c^48);x*=f;}template<typenameT>voidprint(T x){if(x<0){putchar('-');x=-x;}if(x>9)print(x/10);putchar(x%10+'0');}#defineintlonglongconstintN=500005;constintM=2000005;map<int,int>ans;inlinevoidsolve(){ans.clear();intn,m;cin>>n>>m;vector<int>num(n+1);for(inti=1;i<=n;i++){cin>>num[i];}vector<int>w(n+1);for(inti=1;i<=n;i++)cin>>w[i];priority_queue<pair<int,int>,vector<pair<int,int>>,greater<pair<int,int>>>q;intcost=0;for(inti=1;i<=n;i++){if(num[i]%100==0)continue;q.push({(100-(num[i]%100))*w[i],i});if(m<num[i]%100){m+=100;cost+=q.top().first;ans[q.top().second]++;q.pop();}m-=num[i]%100;// cout<<m<<endl;}cout<<cost<<endl;for(inti=1;i<=n;i++){if(ans[i]){cout<<num[i]/100+1<<" "<<0<<endl;}else{cout<<num[i]/100<<" "<<num[i]%100<<endl;}}}signedmain(){ios;intT=1;// cin>>T;for(;T--;)solve();return0;}
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/13 9:16:34

Java中 count++ 不是原子操作的核心原理解析

核心问题&#xff1a;count 不是原子操作 count 看起来是一行代码&#xff0c;但实际对应3个CPU指令&#xff1a; // Java代码 count;// 实际执行的CPU指令&#xff1a; 1. 读取count的当前值到CPU寄存器 (read) 2. 把寄存器的值加1 (add) 3. 把新值写回内存 …

作者头像 李华
网站建设 2026/4/16 18:40:23

YOLO实时检测模型上线!一键部署你的GPU云算力环境

YOLO实时检测模型上线&#xff01;一键部署你的GPU云算力环境 在智能摄像头遍布街头巷尾、工厂车间的今天&#xff0c;一个核心问题始终困扰着开发者&#xff1a;如何让AI“看”得又快又准&#xff1f;传统目标检测方案往往陷入“高精度则慢&#xff0c;求速度就丢细节”的两难…

作者头像 李华
网站建设 2026/4/16 12:32:34

YOLO模型训练Checkpoint自动保存至云端,防GPU故障丢失

YOLO模型训练Checkpoint自动保存至云端&#xff0c;防GPU故障丢失 在工业视觉系统日益复杂的今天&#xff0c;一个常见的噩梦场景是&#xff1a;你正在训练一个YOLOv8模型&#xff0c;已经跑了整整三天&#xff0c;损失曲线终于开始收敛——突然&#xff0c;GPU显存溢出导致进程…

作者头像 李华
网站建设 2026/4/16 9:51:18

6G显存跑2K生图:腾讯混元Image-2.1轻量化部署实战指南

6G显存跑2K生图&#xff1a;腾讯混元Image-2.1轻量化部署实战指南 【免费下载链接】hunyuanimage-gguf 项目地址: https://ai.gitcode.com/hf_mirrors/calcuis/hunyuanimage-gguf 还在为AI绘画的高门槛而烦恼吗&#xff1f;现在&#xff0c;只需6G显存的普通显卡&#…

作者头像 李华
网站建设 2026/4/13 13:14:43

多模态大模型评估新突破:M3STR基准带你探索抽象视觉知识理解奥秘

本文提出M3STR新基准评估多模态大模型对抽象结构化知识的视觉理解能力。设计计数、检测和补全三种任务&#xff0c;评估26个主流MLLMs。发现当前模型在抽象视觉理解上存在显著缺陷&#xff0c;小模型表现接近随机猜测&#xff0c;开源模型整体优于闭源API。研究表明模型缩放定律…

作者头像 李华