第十四届蓝桥杯省赛C++C组C题【三国游戏】题解(AC)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

解题思路

由于三种国家都有获胜的可能,所以我们需要分别枚举 X , Y , Z X,Y,Z X,Y,Z 获胜的情况。

X X X 获胜,那么对于第 i i i 个事件的贡献为 a [ i ] − ( b [ i ] + c [ i ] ) a[i]-(b[i]+c[i]) a[i](b[i]+c[i]),根据贪心的策略,我们可以考虑将所有时间按照贡献进行排序,贡献越大则优先选择。

Y , Z Y,Z Y,Z 获胜同理。

注意
  • X X X 的获胜条件为 X > Y + Z X > Y + Z X>Y+Z,非 X ≥ Y + Z X \geq Y + Z XY+Z
  • 无获胜国时,输出 -1

AC_Code

#include <iostream>
#include <cstring>
#include <algorithm>
#include <cstdio>using namespace std;typedef long long LL;const int N = 1e5 + 10;int n;
int a[N], b[N], c[N], d[N];int get(int a[], int b[], int c[])
{for (int i = 0; i < n; ++ i )d[i] = a[i] - b[i] - c[i];sort(d, d + n, greater<int>());LL res = 0;for (int i = 0; i < n; ++ i ){res += d[i];if (res <= 0)return i;}return n;
}int main()
{cin >> n;for (int i = 0; i < n; ++ i )cin >> a[i];for (int i = 0; i < n; ++ i )cin >> b[i];for (int i = 0; i < n; ++ i )cin >> c[i];int res = max({get(a, b, c), get(b, a, c), get(c, a, b)});if (res == 0)res = -1;cout << res << endl;return 0;
}

#include <iostream>
#include <cstring>
#include <algorithm>using namespace std;typedef long long LL;const int N = 1e5 + 10;int n;
struct Node
{int x, y, z;
}q[N];bool cmp_x(Node a, Node b)
{return a.x - a.y - a.z > b.x - b.y - b.z;
}bool cmp_y(Node a, Node b)
{return a.y - a.x - a.z > b.y - b.x - b.z;
}bool cmp_z(Node a, Node b)
{return a.z - a.x - a.y > b.z - b.x - b.y;
}int main()
{cin >> n;for (int i = 0; i < n; ++ i )cin >> q[i].x;for (int i = 0; i < n; ++ i )cin >> q[i].y;for (int i = 0; i < n; ++ i )cin >> q[i].z;LL res = -1, sum = 0, t = 0;sort(q, q + n, cmp_x);for (int i = 0; i < n; ++ i ){sum += q[i].x - q[i].y - q[i].z;if (sum <= 0)break;t ++;}res = max(res, t);sum = 0, t = 0;sort(q, q + n, cmp_y);for (int i = 0; i < n; ++ i ){sum += q[i].y - q[i].x - q[i].z;if (sum <= 0)break;t ++;}res = max(res, t);sum = 0, t = 0;sort(q, q + n, cmp_z);for (int i = 0; i < n; ++ i ){sum += q[i].z - q[i].x - q[i].y;if (sum <= 0)break;t ++;}res = max(res, t);cout << (!res? -1: res) << endl;return 0;
}

【在线测评】

在这里插入图片描述

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

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

相关文章

【银河麒麟服务器操作系统】java进程oom现象分析及处理建议

了解银河麒麟操作系统更多全新产品&#xff0c;请点击访问麒麟软件产品专区&#xff1a;https://product.kylinos.cn 现象描述 某服务器系统升级内核至4.19.90-25.22.v2101版本后仍会触发oom导致java进程被kill。 现象分析 oom现象分析 系统messages日志分析&#xff0c;故…

人工智能前沿讲座——融合知识的自然语言处理

目录 引言 NLP的发展与现状 发展 机器翻译 机器翻译知识记忆&#xff08;高频词汇记录&#xff09; 现状 我们的尝试 融入外部知识库 融合语言先验知识 融合语篇知识 融合人类行为知识 引言 自然语言处理没有大家都认可的一个定义。 研究人与人交际中以及在人与计算…

配置文件格式 JSON 快速上手

文章目录 1.语法2.实例3.解析参考文献 JSON&#xff08;JavaScript Object Notation&#xff09; 是轻量级的文本数据交换格式&#xff0c;独立于语言&#xff0c;具有自我描述性。JSON 类似于 XML&#xff0c;但比 XML 更小、更快&#xff0c;更易解析。 1.语法 JSON 语法是 …

数据编织 Data Fabric:解决“数据孤岛”的新思路

一个不争的事实是&#xff0c;企业内部数据孤岛的形成&#xff0c;根因在于业务发展的复杂性与技术迭代的快速性导致。具体而言&#xff0c;随着企业业务快速增长&#xff0c;如新生产线的引入或外部公司的并购&#xff0c;这些活动往往伴随着新系统上线与独立数据体系的融入&a…

【safari】react在safari浏览器中,遇到异步时间差的问题,导致状态没有及时更新到state,引起传参错误。如何解决

在safari浏览器中&#xff0c;可能会遇到异步时间差的问题&#xff0c;导致状态没有及时更新到state&#xff0c;引起传参错误。 PS&#xff1a;由于useState是一个普通的函数&#xff0c; 定义为() > void;因此此处不能用await/async替代setTimeout&#xff0c;只能用在返…

网络安全行业最大的敌人是自己

在危机四伏的数字丛林时代&#xff0c;网络安全行业需要跳出资本和市场的博弈陷阱&#xff0c;通过拯救自己来拯救所有人。当然&#xff0c;政府和资本也应该意识到这一点。 在当今这个数字化时代&#xff0c;网络安全的重要性与日俱增。然而&#xff0c;尽管政府和企业不断强调…

【vue+el-table】实现表尾合计行分两行显示,一行显示勾选项之和,一行显示合计,已实现,具体思路解析

效果图&#xff1a; 思路解析&#xff1a; 首先进行了el-table列表的组件封装&#xff0c;很多参数是传进来的。如果是普通的列表&#xff0c;相关参数直接定义就行 1、使用el-table的summary-method处理表尾行 &#xff08;1&#xff09;定义summaryIndex用于指定合计在哪一列…

Linux下载网络文档

1. 使用wget 1.1 安装wget sudo apt install wget1.2 下载网页或者文件 wget URL1.3 下载并重命名 wget -O filename URL1.4 下载文件夹 wget -r ftp://server-address.com/directory1.5 下载整个网站 wget -m --convert-links --page-requisites website_address2. 使用…

vue学习笔记(十一)——开发心得(axios的封装、promise细节、vue-router开发中的使用)

1. axios的网络请求的封装 1.1 为什么要封装api? 代码分层&#xff0c;便于以后的修改&#xff0c;无需触碰逻辑页面 目标&#xff1a; 网络请求&#xff0c;不散落在各个逻辑页面里&#xff0c;封装起来方便以后修改 1.2 封装api步骤 ① 在项目 src 下新建目录 utlis &am…

浅谈大模型领域内数据微调的一些个人理解

近期由于连续做了两个大模型相关的项目尝试&#xff0c;发现一些现象&#xff0c;在查阅了多篇论文及圈内大佬的点评之后&#xff0c;个人对大模型领域内数据微调有了更深入的理解&#xff0c;今天简单交流下&#xff0c;个人的一些理解&#xff0c;欢迎资深大佬对其中的不足之…

Go的数据结构与实现【LinkedList】

介绍 所谓链表&#xff08;Linked List&#xff09;&#xff0c;就是按线性次序排列的一组数据节点。每个节点都是一个对象&#xff0c;它通过一个引用指向对应的数据元素&#xff0c;同时还通过一个引用next指向下一节点。 实现 逻辑方法 我们定义链表的结构体&#xff1a…

VTD学习笔记(一)-启动vtd、基本界面和按钮

写在前面&#xff1a;真快啊&#xff0c;眨眼就毕业上班了&#xff0c;岗位也是做仿真&#xff0c;看来以后就是一直做仿真了&#xff0c;再见了定位~。公司使用的是vtd&#xff0c;看资料是一个很庞大的自动驾驶仿真软件&#xff0c;囊括了车辆动力学到传感器仿真&#xff0c;…

【WPF开发】上位机开发-串口收发

一、引言 在现代工业控制、嵌入式系统等领域&#xff0c;串口通信作为一种常见的通信方式&#xff0c;被广泛应用于各种场景。C#作为一门强大的编程语言&#xff0c;结合Windows Presentation Foundation&#xff08;WPF&#xff09;框架&#xff0c;可以轻松实现串口通信功能…

MMDet3d TR3D: RuntimeError: Error compiling objects for extension

项目&#xff1a; https://github.com/open-mmlab/mmdetection3d 问题复现&#xff1a; 步骤 运行python tools/test.py projects/TR3D/configs/tr3d_1xb16_scannet-3d-18class.py checkpoints/tr3d_1xb16_sunrgbd-3d-10class.pth后报错&#xff1a; File "/home/kyle…

vue2高级特性

1、vue父子组件如何通信 通过props和emit事件传递 // 父组件中<Child :data"data" dataChange"dataChangeHandle"></Child>...methods: {dataChangeHandle(data) {...do somthing} } // 子组件中export default {props: {data: {type: Objec…

C++ STL partition_copy 用法和实现

一&#xff1a;功能 对区间内的元素进行分组&#xff0c;将分组结果拷贝到给定序列中。 二&#xff1a;用法 #include <vector> #include <algorithm> #include <iostream>int main() {std::vector<int> data{2, 4, 6, 1, 3, 5};auto is_even [](in…

Python list comprehension (列表推导式 - 列表解析式 - 列表生成式)

Python list comprehension {列表推导式 - 列表解析式 - 列表生成式} 1. Python list comprehension (列表推导式 - 列表解析式 - 列表生成式)2. Example3. ExampleReferences Python 中的列表解析式并不是用来解决全新的问题&#xff0c;只是为解决已有问题提供新的语法。 列…

iPad型号数据解析:了解不同iPad型号的连接和扩展性能力

iPad是一款非常受欢迎的平板电脑&#xff0c;拥有多种型号和规格可供选择。在本篇文章中&#xff0c;我们将深入研究不同iPad型号的连接和扩展性能。数据源来自于挖数据平台&#xff0c;该平台提供了全面的iPad型号数据&#xff0c;共计1485个型号。 首先&#xff0c;让我们来…

【D3.js in Action 3 精译_020】2.6 用 D3 设置与修改元素样式 + 名人专访(Nadieh Bremer)+ 2.7 本章小结

当前内容所在位置 第一部分 D3.js 基础知识 第一章 D3.js 简介&#xff08;已完结&#xff09; 1.1 何为 D3.js&#xff1f;1.2 D3 生态系统——入门须知1.3 数据可视化最佳实践&#xff08;上&#xff09;1.3 数据可视化最佳实践&#xff08;下&#xff09;1.4 本章小结 第二章…

SpringBoot如何使用Kafka来优化接口请求的并发

在Spring Boot中使用 Kafka 来优化接口请求的并发&#xff0c;主要是通过将耗时的任务异步化到Kafka消息队列中来实现。这样&#xff0c;接口可以立即响应客户端&#xff0c;而不需要等待耗时任务完成。 在Spring Boot应用程序中调用Kafka通常涉及使用Spring Kafka库&#xff…