codeforces 1530C

一道练手的题,思路很快就能出来,练习简化的用语言去实现
题目链接

题目大意

两个人比赛,现在已经进行了 n n n轮,给定两行、每行 n n n个正整数作为每轮的分数,每人总分计算方法为,得分从大到小排前 n / 4 n/4 n/4个的和,接下来每轮每人可能得分为 x ( 0 < = x < = 100 ) x(0<=x<=100) x(0<=x<=100),问最小多少轮后第一个人分数高于第二个人

思路

很容易想到用先排序再前缀和处理一下得分
如果第一个人总分小于第二个人
再思考如何分配后面的轮次
显然最差情况是再来 n n n轮,结果完全反过来,使得两人分数相等
思考发现,最优情况是,每轮让第一个人 + 100 +100 +100,第二个人 + 0 +0 +0
所以方法出来了,循环实现上述语句
发现直接模拟的话实现很麻烦,而且可能会 T T T
所以考虑每轮分数之间的关系
考虑第一个人,每次加 100 100 100分都会再减去被选中的分数中的最小值,所以总共第 k k k轮(补加的第 i i i轮)后第一个人的有效分数段数为 n = k − k / 4 n=k-k/4 n=kk/4,分数为 i ∗ 100 + p r e a [ n − i ] i*100+prea[n-i] i100+prea[ni]
考虑第二个人,每次是加 0 0 0分,显然如果还有没有加上的分数会优先被加入总分,
当轮数大于有效分数的数量时,总分保持不变

ACcode

#include<bits/stdc++.h>using namespace std;using ll = long long;bool cmp(int x, int y) {return x > y;
}void solve()
{int n;cin >> n;vector<int>a(n + 3), b(n + 3);for (int i = 1;i <= n;i++)cin >> a[i];for (int i = 1;i <= n;i++)cin >> b[i];vector<ll>pa(n + 3), pb(n + 3);sort(a.begin() + 1, a.begin() + 1 + n, cmp);sort(b.begin() + 1, b.begin() + 1 + n, cmp);pa[0] = 0;pb[0] = 0;for (int i = 1;i <= n;i++)pa[i] = pa[i - 1] + a[i];for (int i = 1;i <= n;i++)pb[i] = pb[i - 1] + b[i];int ans = 0;for (;;ans++) {int k = n + ans;int d = k - k / 4;ll suma = 100 * ans + pa[d - ans];ll sumb = d < n ? pb[d] : pb[n];if (suma >= sumb) {cout << ans << '\n';return;}}
}int main()
{ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);int t;cin >> t;while (t--) {solve();}return 0;
}

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

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

相关文章

识别pdf中论文标题并重命名PDF名称(2024.1.2,第二次更新)判断标题中是否以空格结尾

63~66行增加语句&#xff0c;判断标题是否以空格结尾 83~85行增加语句&#xff0c;判断选句是否以空格结尾 import os import timeimport fitzdef find_largest_font_sentence(pdf_path):largest_font_size 0largest_font_sentence maxsize0# 打开PDF文件document fitz.ope…

Linux:apache优化(2)—— 网页传输压缩

网页传输压缩 客户端在请求httpd服务器数据&#xff0c;httpd服务器在返回数据包给客户端时&#xff0c;先对返回的数据进行压缩&#xff0c;压缩之后再传输 作用&#xff1a;配置 Apache 的网页压缩功能&#xff0c;是使用 Gzip 压缩算法来对 Apache 服务器发布的网页内容进行…

研发中台拆分过程的一些心得总结

背景在 21 年&#xff0c;中台拆分在 21 年&#xff0c;以下为中台拆分的过程心得&#xff0c;带有一定的主观&#xff0c;偏向于中小团队中台建设参考&#xff08;这里的中小团队指 3-100 人的团队&#xff09;&#xff0c;对于大型团队不太适用&#xff0c;毕竟大型团队人中 …

C++多态的使用

1. 多态 多种形态或多种实现方法&#xff0c;C中的多态是指一种接口&#xff08;指的是父类接口&#xff09;&#xff0c;多种实现方法&#xff08;指的是每个子类所实现的方法&#xff09;&#xff0c;即通过父类接口实现调用子类的多种方法 1.1 构成多态性的条件&#xff1a;…

【代数学作业1完整版-python实现GNFS一般数域筛】构造特定的整系数不可约多项式:涉及素数、模运算和优化问题

代数学作业1-完整版&#xff1a;python实现GNFS一般数域筛 写在最前面背景在GNFS算法中选择互质多项式时&#xff0c;需要考虑哪些关键因素&#xff0c;它们对算法的整体运行时间有何影响? 练习1题目题目分析Kleinjung方法简介通用数域筛法&#xff08;GNFS&#xff09;中的多…

浅谈开关量信号隔离器在钢铁厂除鳞系统的应用-安科瑞 蒋静

摘要&#xff1a;在钢铁生产线中&#xff0c;轧制是其中一项重要的加工工艺。通过轧制将金属坯料进行延展和定型&#xff0c;满足不同行业的使用要求。在轧制前需要进行除鳞&#xff0c;除鳞系统是通过高压水形成扇形水束&#xff0c;喷射到钢坯表面将氧化铁层剥离。高压水由高…

idea中java maven程序打JAR包的方式

JAR包是一种文件格式&#xff0c;用于将Java类、资源和元数据打包到一个文件中。它通常用于将Java库、应用程序或模块分发给其他开发人员或部署到不同的环境中。JAR包可以包含许多不同类型的文件&#xff0c;包括.class文件&#xff08;编译后的Java类&#xff09;、.java文件&…

Axure软件大全:原型设计下载与学习指南!

Axure可以有效地创建原型&#xff0c;包括绘制APP和网页的原型图、框架图、结构图等。Axure内置的小部件可以用来构建动态交互。即使新手设计师不懂程序代码&#xff0c;也可以在Axure中创建复杂、动态、功能丰富的原型。对于想要深入研究和花时间学习程序的设计师来说&#xf…

王力机器人安全门|用细节开拓高端精致家居生活

细微之处见风范,毫厘之优定乾坤。在追求高端品质的道路上,细节往往是最有力的诠释。如在入户门的选择方面,考虑到老人、孩子、宠物等每一位家庭成员不同需求的设计、科技运用才称得上是充满人性化、品质化的高端细节,幸福感直抵心灵。在该方面,王力机器人安全门做出了表率,每一…

【软件工程】设计概念

&#x1f34e;个人博客&#xff1a;个人主页 &#x1f3c6;个人专栏&#xff1a; 软件工程 ⛳️ 功不唐捐&#xff0c;玉汝于成 目录 前言 正文 软件工程中的设计概念 概念&#xff1a; 结语 我的其他博客 前言 在数字时代的浪潮中&#xff0c;软件工程设计成为塑造创新…

【大数据Hive】hive 运算符使用详解

目录 一、前言 二、hive 运算符分类 三、hive 运算符操作演示 3.1 数据准备 创建表dual 加载一个文件dual.txt到dual表中 模拟测试 3.2 关系运算符 is null空值判断 is not null 非空值判断 like使用 3.3 算术运算符 取整操作 取余操作: % 位与操作: & …

Java 19的未来:新特性、性能优化和更多

目录 前言 新特性的引入 1. 模式匹配的扩展 2. 增强的模式匹配异常处理 3. 基于记录的反射 4. 引入静态方法的接口 性能优化 1. 垃圾收集器的改进 2. 即时编译器的增强 3. 并行处理的改进 Java编程的前景展望 1. 更多的应用场景 2. 更强的生态系统 3.…

Hive/SparkSQL中UDF/UDTF/UDAF的含义、区别、有哪些函数

Hive官网&#xff1a;https://cwiki.apache.org/confluence/display/Hive/LanguageManualUDF#LanguageManualUDF-Built-inTable-GeneratingFunctions(UDTF) 1.UDF(User-Defined Function) 含义 即用户定义函数&#xff0c;UDF用于处理一行数据并返回一个标量值(单个值)&#x…

Android Studio导入现有项目的方法

今年因为搞了四个电脑放在不同地点&#xff0c;经常遇到在新电脑上装了Android Studio之后需要导入现有项目的情况&#xff0c;有时挺顺利&#xff0c;有时又很麻烦&#xff0c;遇到各种问题导致无法build. 不过也有一些规律&#xff0c;总结一下怎样做才能顺利导入&#xff1…

【OpenCV】OpenCV:计算机视觉的强大工具库

摘要   OpenCV是一个广泛应用于计算机视觉领域的开源工具库&#xff0c;为开发者提供了丰富的图像处理和计算机视觉算法。本文将介绍OpenCV的功能和应用领域&#xff0c;并探讨它在实践中的重要性和前景。 计算机视觉的强大工具库 一、什么是OpenCV&#xff1f;二、OpenCV的功…

c# 捕获全部线程的异常 试验

1.概要 捕获全部线程的异常 试验&#xff0c;最终结果task的异常没有找到捕获方法 2.代码 2.1.试验1 2.1.1 试验结果 2.2 代码 2.2.1主程序代码 using NLog; using System; using System.Threading; using System.Windows.Forms;namespace 异常监控 {static class Program…

CCNP课程实验-03-Route_Path_Control_CFG

目录 实验条件网络拓朴需求 基础配置需求实现1.A---F所有区用Loopback模拟&#xff0c;地址格式为&#xff1a;XX.XX.XX.XX/32&#xff0c;其中X为路由器编号。根据拓扑宣告进对应协议。A1和A2区为特例&#xff0c;A1&#xff1a;55.55.55.0/24&#xff0c;A2&#xff1a;55.55…

RDS创建数据库

目录 创建数据库 创建账号与授权 连接RDS数据库 创建数据库 在创建数据库的页面&#xff0c;你需要设置数据库的名称、字符集、排序规则等信息。 字符集&#xff1a;字符集&#xff08;Character set&#xff09;是多个字符的集合&#xff0c;字符集种类较多&#xff0c;每个…

typescript,eslint,prettier的引入

typescript 首先用npm安装typescript&#xff0c;cnpm i typescript 然后再tsc --init生成tsconfig.json配置文件&#xff0c;这个文件在package.json同级目录下 最后在tsconfig.json添加includes配置项&#xff0c;在该配置项中的目录下&#xff0c;所有的d.ts中的类型可以在…

惠普打印机---共享打印机安装 --连接

1. 远程连接 输入 winR ,再输入共享打印机的连接的IP 2.进入 连接 界面 3.右击打印机 &#xff0c;点击连接 &#xff0c;就可以添加打印机设备 ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/ba03aea8156642d58982fd2ce0934b45.png 方法二、 添加打印机 2.…