分配工资(含代码详解)

分配工资

题目描述

题目来源于洛谷:经过小 A 和卷王的一番忙活,公开赛通过了审核。比赛顺利的结束后,她们领到了一笔 m m m 元的工资。现在她们遇到了一个棘手的问题:工资怎么分呢?

公开赛有 n n n 道题,第 i i i 道题的出题人是 a i a_i ai a i a_i ai 1 1 1 表示卷王,为 2 2 2 表示小 A。

在谷洛的工资分发规则里,一道题的出题人会获得这道题的所有工资。每道题有一个工资权重 b i b_i bi,也就是说,各个题能获得的工资比例是 b 1 : b 2 : b 3 ⋯ : b n − 1 : b n b_1:b_2:b_3\dots :b_{n-1}:b_n b1:b2:b3:bn1:bn

现在,卷王想知道,按照如上的方法计算自己获得的工资,她会分到多少工资?

提示:建议结合样例解释理解题意。

输入格式

第一行两个整数 n , m n,m n,m,表示比赛的题量以及小 A 和卷王获得的工资。

接下来 n n n 行,每行两个整数 a i , b i a_i,b_i ai,bi,分别表示第 i i i 道题的出题人和工资权重。

输出格式

一行一个小数,表示卷王获得的工资,保留小数点后 3 3 3 位。

样例 #1

样例输入 #1

4 1000
1 1
2 1
2 2
1 6

样例输出 #1

700.000

样例 #2

样例输入 #2

3 1000
1 3
1 30
2 300

样例输出 #2

99.099

提示

样例 1 解释

这场比赛有 4 4 4 道题,小 A 和卷王共获得了 1000 1000 1000 元,各个题获得的工资的比是 1 : 1 : 2 : 6 1:1:2:6 1:1:2:6。由此可知, 4 4 4 道题的工资分别为 1000 × 1 1 + 1 + 2 + 6 = 100 1000 \times \frac{1}{1 + 1 + 2 + 6} = 100 1000×1+1+2+61=100 元、 1000 × 1 1 + 1 + 2 + 6 = 100 1000 \times \frac{1}{1 + 1 + 2 + 6} = 100 1000×1+1+2+61=100 元、 1000 × 2 1 + 1 + 2 + 6 = 200 1000 \times \frac{2}{1 + 1 + 2 + 6} = 200 1000×1+1+2+62=200 元、 1000 × 6 1 + 1 + 2 + 6 = 600 1000 \times \frac{6}{1 + 1 + 2 + 6} = 600 1000×1+1+2+66=600 元。卷王出了第 1 1 1 题和第 4 4 4 题,所以她会获得 100 + 600 = 700 100+600=700 100+600=700 元。

数据规模与约定

  • 对于 20 % 20\% 20% 的数据,满足 a i = 2 a_i=2 ai=2
  • 对于 100 % 100\% 100% 的数据,满足 2 ≤ n ≤ 1 0 6 2\leq n\leq 10^6 2n106 1 ≤ m ≤ 1 0 9 1\leq m\leq 10^9 1m109 1 ≤ a i ≤ 2 1\le a_i\le 2 1ai2 1 ≤ b i ≤ 1 0 3 1\leq b_i\leq 10^3 1bi103

题解

#include <iostream> // 引入输入输出流库
#include <cstdio>   // 引入标准输入输出库using namespace std;
typedef long long ll; // 定义长整型别名int main() {ll n, m; // 声明题目数量和总工资cin >> n >> m; // 输入题目数量和总工资ll a, b; // 声明出题人和工资权重ll op = 0, num = 0; // op为卷王的工资权重总和,num为总的工资权重和while (n--) { // 循环输入每道题目的信息cin >> a >> b;if (a == 1) op += b; // 如果出题人是卷王,累加到opnum += b; // 累加总工资权重}double pay; // 声明卷王的工资pay = 1.0 * m * op / num; // 计算卷王的工资printf("%.3lf", pay); // 输出卷王的工资,保留三位小数return 0; // 返回0,程序结束
}

这个代码的主要逻辑

  1. 读取题目数量 n 和总工资 m。
  2. 初始化两个变量 op 和 num,分别用来存储卷王的工资权重总和和所有题目的工资权重总和。
  3. 循环读取每道题目的信息,如果出题人是卷王(a == 1),将对应的工资权重 b 加到 op 中,同时将 b 加到 num 中。
  4. 计算卷王的实际工资 pay,公式是 m * op / num。
  5. 使用 printf 输出卷王的实际工资,并保留三位小数。

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

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

相关文章

lua入门(2) - 数据类型

前言 本文参考自: Lua 数据类型 | 菜鸟教程 (runoob.com) 希望详细了解的小伙伴还请查看上方链接: 八个基本类型 type - 函数查看数据类型: 测试程序: print(type("Hello world")) --> string print(type(10.4*3)) --> number print(t…

uORF的含义-暂时

下面是结果文件中一些列名的详细解释&#xff1a; ORF_ID: 预测的ORF&#xff08;开放阅读框&#xff09;的标识符。 ORF_type: 预测的ORF类型&#xff0c;根据其与相关CDS&#xff08;编码序列&#xff09;的位置进行注释。报告的ORF类别包括&#xff1a; “annotated”: 与注…

WEB安全-靶场

1 需求 2 语法 3 示例 男黑客|在线渗透测试靶场|网络安全培训基地|男黑客安全网 4 参考资料

rpc超时时间的设置对句柄和内存的影响

今天实验验证:四台拷机,配置修改入下 (1)断网 拷机时间均加快 (2)通网 拷机时间均加快 (3)断网 拷机时间均加快 另外配置超时时间为0 (4) 通网 拷机时间均加快 另外配置超时时间为0 结果分析对比: 11:30到13:36拷机分析: RPC超时时间设置为60时: 断网:…

什么是TABU搜索?

文章目录 一、说明二、什么是TABU搜索&#xff1f;三、如何使用禁忌搜索优化算法&#xff1f;四、代码解释&#xff1a;五、复杂度分析&#xff1a;六、使用禁忌搜索解决问题的示例&#xff1a; 一、说明 在应用博弈论完成游戏开发中&#xff0c;存在博弈树或图数据结构&#…

【Unity】ScreenToWorldPoint转换三维空间MousePosition

踩坑记录&#xff1a; 使用ScreenToWorldPoint一般会出现诸如如下代码 Camera.main.ScreenToWorldPoint&#xff08;Input.mousePosition&#xff09; 此时的转换&#xff0c;如果是2D模式下&#xff0c;那么直接使用即可&#xff0c;没有问题&#xff0c;因为2D中&#xff0…

ubuntu 如何查看某一个网卡的ip地址

在Ubuntu中&#xff0c;你可以使用多种方法来查看某一个网卡的IP地址。以下是一些常用的方法&#xff1a; 使用ip命令&#xff1a; ip命令是现代Linux系统中用于显示和操作路由、网络设备、策略路由和隧道的工具。要查看所有网络接口的IP地址&#xff0c;你可以使用&#xff1a…

中英双语介绍伦敦大学学院(University College London,UCL)

中文版 伦敦大学学院&#xff08;UCL&#xff09;简介 位置和周边环境 伦敦大学学院&#xff08;University College London&#xff0c;简称UCL&#xff09;位于英国伦敦市中心的布卢姆斯伯里&#xff08;Bloomsbury&#xff09;区。具体地址为&#xff1a; Gower Street, …

C语言 -- 扫雷游戏

C语言 – 扫雷游戏 游戏规则&#xff1a; 给定一个棋盘&#xff0c;玩家需要排查出所有隐藏的雷&#xff0c;也就是选择出所有不是雷的地方。 玩家选择位置&#xff0c;若此处有雷&#xff0c;玩家被炸死&#xff0c;游戏结束&#xff1b; 若此处无雷&#xff0c;此处提示周围一…

12.SQL注入-盲注基于时间(base on time)

SQL注入-盲注基于时间(base on time) boolian的盲注类型还有返回信息的状态&#xff0c;但是基于时间的盲注就什么都没有返回信息。 输入payload语句进行睡5秒中&#xff0c;通过开发这工具查看时间&#xff0c;如图所示&#xff0c;会在5秒钟后在执行&#xff0c;因此存在基于…

基于Java技术的篮球论坛系统

你好呀&#xff0c;我是计算机学姐码农小野&#xff01;如果有相关需求&#xff0c;可以私信联系我。 开发语言 Java 数据库 MySQL 技术 B/S模式、Java技术 工具 Visual Studio、MySQL数据库开发工具 系统展示 首页 用户注册界面 篮球论坛界面 个人中心界面 摘要 本…

Vite: 近几个版本的更新

概述 在 2021 年 2 月&#xff0c;尤大正式推出了 Vite 2.0 版本&#xff0c;可以说是 Vite 的一个重要转折点&#xff0c;自此之后 Vite 的用户量发生了非常迅速的增长&#xff0c;很快达到了每周 100 万的 npm 下载量。同时&#xff0c;Vite 的社区也越来越活跃&#xff0c;…

机器学习原理之 -- XGboost原理详解

XGBoost&#xff08;eXtreme Gradient Boosting&#xff09;是近年来在数据科学和机器学习领域中广受欢迎的集成学习算法。它在多个数据科学竞赛中表现出色&#xff0c;被广泛应用于各种机器学习任务。本文将详细介绍XGBoost的由来、基本原理、算法细节、优缺点及应用场景。 X…

14-38 剑和诗人12 - RAG+ 思维链 ⇒ 检索增强思维(RAT)

在快速发展的 NLP 和 LLM 领域&#xff0c;研究人员不断探索新技术来增强这些模型的功能。其中一种备受关注的技术是检索增强生成 (RAG) 方法&#xff0c;它将 LLM 的生成能力与从外部来源检索相关信息的能力相结合。然而&#xff0c;最近一项名为检索增强思维 (RAT) 的创新通过…

Go基础知识

目标 简单介绍一下 GO 语言的诞生背景&#xff0c;使用场景&#xff0c;目前使用方案简单介绍一下 GO的使用&#xff0c;GO的基础语法&#xff0c;简单过一下一些GO的语言例子着重介绍一下GO的特性&#xff0c;为什么大家都使用GO语言&#xff0c;GO的内存结构、为什么都说GO快…

极速目标检测:算法加速的策略与实践

标题&#xff1a;极速目标检测&#xff1a;算法加速的策略与实践 目标检测算法在计算机视觉任务中扮演着重要角色&#xff0c;但其计算成本往往较高。优化目标检测算法的速度&#xff0c;不仅可以提升效率&#xff0c;还能使算法适用于实时系统。本文将深入探讨如何优化目标检…

【笔记】记一次在linux上通过在线安装mysql报错 CentOS 7 的官方镜像已经不再可用的解决方法+mysql配置

报错&#xff08;恨恨恨恨恨恨恨&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff09;&#xff1a; [rootlocalhost ~]# sudo yum install mysql-server 已加载插件&#xff1a;fastestmirror, langpacks Determining fastest mirrors Could not retrie…

Conda Channels全掌握:Linux中添加与移除的艺术

标题&#xff1a;Conda Channels全掌握&#xff1a;Linux中添加与移除的艺术 Conda是一个流行的跨平台包管理系统&#xff0c;广泛用于安装和管理科学计算和数据分析软件。Conda的channels是软件包的存储库&#xff0c;用户可以通过添加或移除这些channels来获取所需的包。本文…

Unity中使用VectorGraphics插件时,VectorUtils.RenderSpriteToTexture2D方法返回结果错误的解决方法

Unity中使用VectorGraphics插件时&#xff0c;如果使用VectorUtils.BuildSprite方法创建Sprite&#xff0c;那么得到的Sprite往往是一个三角网格数比较多的Sprite&#xff0c;如果想要得到使用贴图只有两个三角面的方形Sprite&#xff0c;可以使用该插件提供的VectorUtils.Rend…

数据库概念题总结

1、 2、简述数据库设计过程中&#xff0c;每个设计阶段的任务 需求分析阶段&#xff1a;从现实业务中获取数据表单&#xff0c;报表等分析系统的数据特征&#xff0c;数据类型&#xff0c;数据约束描述系统的数据关系&#xff0c;数据处理要求建立系统的数据字典数据库设计…