CF2038A - Bonus Project 题解

news/2025/2/24 7:32:09/文章来源:https://www.cnblogs.com/Kounjicat/p/18566605

题目传送门
https://codeforces.com/contest/2038/problem/A

先大致捋一下题目的含义

一共有n个工程师,每个工程师完成相应的工作都有一定的奖金a,但同时也会消耗成本b,目前一共有k个工作需要做

这些工程师对他们的同事很友好,他们能接受自己的总收益为0来增长经验,但不能接受自己为负收益,于是就有了特判的一个解

当每个人都尽力去满足使自己的收益大于等于0的情况下没法满足工作要求,那么这些工程师就会集体罢工

也就是都输出0

接下来是题目的一个很重要的点,工作流程的顺序以及收益s的要求

这n个工程师是从前往后依次工作,对于每份工作,都要满足

收益s对于他本人,在所有人的工作数量总和尽可能大于等于k的背景下,最大化

也就是说,前边的人利益大,后边的人是牛马

也就是这道题的核心了

于是我们只需要从后往前遍历即可,我们假定每个人的s都为0,那么对应的c就等于a[i] / b[i]

当后面的人把工作都完成了,那么前边的人也就都不用工作了,他们的c值都为0

对于结束工作的这个人,我们要单独计算一下他所要完成的工作

ac代码如下

#include<bits/stdc++.h>
using namespace std;
int res, x, pos;//
void solve(){int n, k;cin >> n >> k;vector<int> a(n + 1, 0), b(n + 1, 0), ans(n + 1, 0);for(int i = 1;i <= n;i ++) cin >> a[i];for(int i = 1;i <= n;i ++) cin >> b[i];for(int i = n;i >= 1;i --){//从后往前遍历,后边的人完成的工作多x = a[i] / b[i];//在收益为0的情况下完成最多的工作ans[i] = x;//存进去res += x;if(res >= k) {//如果到这个人为止能够完成工作,就停止,记录下此时的位置pos = i;ans[i] = k - (res - x);//计算这个人要完成的工作break;}}if(res < k) {for(int i = 1;i <= n;i ++) cout << 0 << ' ';return;}else {for(int i = 1;i < pos && pos != 1;i ++) cout << 0 << ' ';for(int j = pos;j <= n;j ++)cout << ans[j] << ' ';return;}
}signed main(){ios::sync_with_stdio(false);cin.tie(nullptr);solve();return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/840624.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

BurpSuite安装captcha-killer插件

1.本机已经安装python3.8或者更高版本,使用命令进行更新pip和安装环境模块 python3 -m pip install --upgrade pip pip3 install ddddocr aiohttp -i https://pypi.tuna.tsinghua.edu.cn/simple/ (因为本机安装了python2和python3,所以输入pip3)2.bp导入插件包,低版本导…

Perf Linux性能事件(性能计数)器 与 Flame Graph

from ふぃーる 冬コミ2日目西ふ15Perf 性能采样和计数原理 首先要清楚perf是一个面向事件的可观察性工具from jyy perf在中断来临时,获取OS在中断之前所记录的关键性能指标Perf Stat (性能计数)stat (statistics) 有统计,计数,获取信息等含义perf stat <command&…

技术债正在悄悄拖垮你的团队!

0 前言 软件开发的核心在于应对变化。在软件的生命周期中,目标是能够在合理的时间内实施必要的更改。不管这些更改是技术性的,比如紧急安全升级,还是业务需求所驱动的,比如开发新功能以在目标市场中更具竞争力——能否快速应对变化是成败的关键。 是什么让我们慢下来?通常…

HCIA-06 IP路由基础

介绍了路由的基本概念,路由条目三种生成方式:直连路由、静态路由(缺省路由)、动态路由,路由器的基本工作原理、路由表的具体内容。路由器选择最佳路由的方法:先比较匹配的掩码长度、(如果掩码长度相同)再比较优先级、(如果优先级相同)再比较度量值。路由转发选择的路…

学习笔记(四十四):自定义组件@LocalBuilder装饰器

概述: 当开发者使用@Builder做引用数据传递时,会考虑组件的父子关系,使用了bind(this)之后,组件的父子关系和状态管理的父子关系并不一致。 为了解决组件的父子关系和状态管理的父子关系保持一致的问题,引入@LocalBuilder装饰器。 @LocalBuilder拥有和局部@Builder相同的功…

推荐5款程序员必备的画图工具,效率提升利器!

ProcessOn ProcessOn是一款专业强大在线作图工具,提供AI生成思维导图流程图,支持思维导图、流程图、组织结构图、网络拓扑图、鱼骨图、UML图等多种图形。同时可实现人与人之间的实时协作和共享,提升团队工作效率。在线访问地址:https://www.processon.com丰富的图形素材库:…

定时器JS深入理解解读

set&clear interval&timeout 相信不论是老油条还是新手小白,你早就听过或者用过setInterval和setTimeout这俩哥们儿和他们的死敌clearInterval和clearTimeout了吧,作为项目里的“老面孔”和面试高频考点,今天GJ504b就带大家深入解读这四大活宝😀setInterval/setT…

not in 和 not exists 比较和用法

尽量不要使用not in(它会调用子查询),而尽量使用not exists(它会调用关联子查询)。查询语句使用了not in,那么对内外表都进行全表扫描,没有用到索引;而not exists的子查询依然能用到表上的索引。所以无论哪个表大,用not exists都比not in 要快。 NOT IN 查询返回空结果:…

Flash动画综合设计并发布、嵌入到网页

【作业要求】 自己选定主题,创意制作Flash动画,并与网页进行集成 【实验环境】 l 所需硬件环境为微机; l 所需软件环境为VS code 【创意内容】 因为我比较爱国,所以我选定的主题都是关于国旗的【关键步骤】 1、选好想要做的内容,找到一些视频; 2、查找关于任如何在浏览器…

洛谷P11290 【MX-S6-T2】「KDOI-11」飞船

Problem本题开启Special Judge,无需考虑精度问题Solve 一开始想到这个用DP写,但是不知道怎么定义 去"提交记录"旁边的神秘按钮得知速度可以作为第二维,且类似于背包 那么我们就可以按照背包列出定义 前i个加油站,花费时间j...... 但是这里是求最小花费,所以我们…

Analogue Pocket 软硬件实验预告

如题,还在测试中,预计会在今年内发布。