ZCMU--5009: 龙虎斗

news2025/4/5 11:16:17

轩轩和开开正在玩一款叫《龙虎斗》的游戏,游戏的棋盘是一条线段,线段上有n个兵营(自左至右编号1~n),相邻编号的兵营之间相隔1厘米,即棋盘为长度为n-1厘米的线段。i号兵营里有ci位工兵。

下面图1为n = 6的示例:

轩轩在左侧,代表“龙”;凯凯在右侧,代表“虎”。 他们以 m 号兵营作为分界, 靠左的工兵属于龙势力,靠右的工兵属于虎势力,而第 𝐦 号兵营中的工兵很纠结,他 们不属于任何一方。

一个兵营的气势为:该兵营中的工兵数 × 该兵营到 m 号兵营的距离;参与游戏 一方的势力定义为:属于这一方所有兵营的气势之和。

下面图 2 为 n = 6, m = 4 的示例,其中红色为龙方,黄色为虎方:


游戏过程中,某一刻天降神兵,共有 s1 位工兵突然出现在了p1号兵营。作为轩轩和凯凯的朋友,你知道如果龙虎双方气势差距太悬殊,轩轩和凯凯就不愿意继续玩下去了。为了让游戏继续,你需要选择一个兵营 p2,并将你手里的 s2位工兵全部派往 兵营p2,使得双方气势差距尽可能小。

注意:你手中的工兵落在哪个兵营,就和该兵营中其他工兵有相同的势力归属(如果落在 m 号兵营,则不属于任何势力)。

输入描述:
输入文件的第一行包含一个正整数 n,代表兵营的数量。
接下来的一行包含 n 个正整数,相邻两数之间以一个空格分隔,第 i 个正整数代表编号为 i 的兵营中起始时的工兵数量 ci。接下来的一行包含四个正整数,相邻两数间以一个空格分隔,分别代表 m, p1, s1, s2。

输出描述:
输出文件有一行,包含一个正整数,即 p2,表示你选择的兵营编号。如果存在多个编号同时满足最优,取最小的编号。

输入:

6
2 3 2 3 2 3
4 6 5 2

输出:

2

备注:

1<m<n1<m<n,
1≤p1≤n1≤p1≤n,
n≤10^5,ci,s1,s2≤10^9

解析:直接暴力枚举每一个军营加入s2,然后更新答案即可,需要开long long。

#include <bits/stdc++.h>
using namespace std;
const int N=1e5+5;
typedef long long ll;
ll a[N];
void solve()
{
	int n,m,p1;
	ll s1,s2,sum1=0,sum2=0;//sum1,sum2分别记录两个军营的势力
	scanf("%d",&n);
	for(int i=1;i<=n;i++) scanf("%lld",&a[i]);
	scanf("%d%d%lld%lld",&m,&p1,&s1,&s2);
	a[p1]+=s1;//s1个加入p1军营
	for(int i=1;i<m;i++) sum1+=a[i]*(m-i);//左边军营势力
	for(int i=m+1;i<=n;i++) sum2+=a[i]*(i-m);//右边军营势力
	int ans=m;//记录下答案位置,可以先在m点(中立)
	ll minn=abs(sum1-sum2);//记录最小差距
	for(int i=1;i<m;i++)//加入左边军营
	{
		ll k=sum1+s2*(m-i);
		if(abs(k-sum2)<minn) minn=abs(k-sum2),ans=i;
	}
	for(int i=m+1;i<=n;i++)//加入右边军营
	{
		ll k=sum2+s2*(i-m);
		if(abs(k-sum1)<minn) minn=abs(k-sum1),ans=i;
	}
	printf("%d\n",ans);
}
int main()
{
	solve();
	return 0;
}

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

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

相关文章

如何通过IP找到地址?

在我们印象中&#xff0c;我们都知道可以通过 IP 地址找到某个人。但当我们细想一下&#xff0c;我们会发现其实 IP 地址与地理位置并不是直接相关的。那我们到底是如何通过 IP 地址找到地址的呢&#xff1f;答案是&#xff1a;通过自治系统&#xff08;Autonomous System&…

大势前瞻!文旅还是短视频,你弯道超车风口在这了

三年前&#xff0c;新冠疫情的影响波及整个各行各业行业&#xff0c;互联网寒冬&#xff0c;房地产崩盘&#xff0c;教培团灭&#xff0c;在这样的背景下&#xff0c;行业都进入了发展“冰雪期”。老话说大疫后必有大变&#xff0c;如今风雪融化&#xff0c;万物复苏&#xff0…

day01_HTML常识

基础概念铺垫 认识网页 网页的组成&#xff1a;文字、图片、音频、视频、超链接一系列元素网页的本质&#xff1a;程序员写的代码通过浏览器转化&#xff08;解析和渲染&#xff09;成用户看到的网页网页是由网页元素组成的 &#xff0c; 这些元素是利用html标签描述出来&…

面试攻略,Java 基础面试 100 问(十八)

JAVA IO 包 JAVA NIO NIO 主要有三大核心部分&#xff1a;Channel(通道)&#xff0c;Buffer(缓冲区), Selector。 传统 IO 基于字节流和字 符流进行操作&#xff0c;而 NIO 基于 Channel 和 Buffer(缓冲区)进行操作&#xff0c;数据总是从通道读取到缓冲区 中&#xff0c;或者…

不可替代的测试人:一文解释探索性测试是什么

剧本式测试 随着软件技术的发展&#xff0c;软件开发过程中对软件测试的需求越来越庞大&#xff0c;从原来单纯的寻找软件缺陷&#xff0c;到后来的学习软件、挖掘软件中存在的缺陷、评估软件可用性、性能等等方面&#xff0c;软件测试发挥着重要作用。 考虑到软件测试如此的…

视频流截取保存到本地路径(打包jar包CMD运行)

需求&#xff1a;现在有一批https的监控视频流URL&#xff0c;需要对视频流进行每三秒截屏一次&#xff0c;并保存到本地路径&#xff0c;png格式&#xff0c;以当前时间命名。代码&#xff1a;import org.bytedeco.javacv.FFmpegFrameGrabber; import org.bytedeco.javacv.Fra…

微信小程序登录

小程序登录 | 微信开放文档 (qq.com)https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/login.html 静默登录 首先需要在微信开发者工具中获取code(wx.login(Object object) | 微信开放文档 (qq.com)) 前端处理获取code其次&#xff1a;需要appid,se…

PyQt5数据库开发2 5.1 QSqlQueryModel

目录 一、Qt窗体设计 1. 新建Qt项目 2. 拷贝4-3的部分组件过来 3. 添加资源文件 4. 创建Action 5. 添加工具栏 6. 创建菜单项 7. 关闭Action的实现 8. 调整布局 8.1 调整两个groupbox的布局 8.3 为窗体设置全局布局 二、代码拷贝和删除 1. 新建项目目录 2. 编译…

游戏化销售管理是什么?使用CRM系统进行有什么用?

对于企业销售来说&#xff0c;高薪酬也伴随着更高的压力与挑战。高强度的单一工作会让销售人员逐渐失去对工作的兴趣&#xff0c;导致销售状态缺少动力和激情&#xff0c;工作开展愈加困难。您可以通过CRM系统进行游戏化销售管理&#xff0c;让销售人员重新干劲满满。 游戏并不…

Matlplotlib绘图

0 建议学时 4学时 1 Matlplotlib库介绍 Matplotlib库由各种可视化类构成&#xff0c;内部结构复杂 受Matlab启发&#xff0c;matplotlib.pylot是绘制各类可视化图形的命令字库&#xff0c;相当于快捷方式 Matplotlib中文网&#xff1a;https://www.matplotlib.org.cn 安装&…

【离线数仓-4-数据仓库设计】

离线数仓-4-数据仓库设计离线数仓-4-数据仓库设计1.数据仓库分层规划2.数据仓库构建流程1.数据调研1.业务调研2.需求分析3.总结2.明确数据域3.构建业务总线矩阵&维度模型设计4.明确统计指标1.指标体系相关概念1.原子指标2.派生指标3.衍生指标2.指标体系对于数仓建模的意义5…

Python-可变类型、不可变类型和遍历列表

1.可变类型和不可变类型python的类型根据值是否可变分为两类可变类型:列表、字典、集合等 值可以改变不可变类型&#xff1a;数字、字符串、元组等 值不可以改变注意&#xff1a;可变类型对象和不可变类型对象都不能更改类型本身2.遍历列表2.1正序遍历提前通过len函数获取元素总…

蓝桥杯:聪明的猴子

题目链接&#xff1a;聪明的猴子https://www.lanqiao.cn/problems/862/learning/ 目录 题目描述 输入描述 输出描述 输入输出样例 运行限制 解题思路&#xff1a; 最小生成树 AC代码&#xff08;Java&#xff09;: 课后练习&#xff1a; 题目描述 在一个热带雨林中生存…

20230223 刚体上的两个点速度之间的关系

刚体上的两个点速度之间的关系 注意&#xff1a;这里所讨论的都是投影在惯性坐标系上的。 dMAdMOdOAdMOdCA−dCOd_{_{MA}}d_{_{MO}}d_{_{OA}}d_{_{MO}}d_{_{CA}}-d_{_{CO}}dMA​​dMO​​dOA​​dMO​​dCA​​−dCO​​ 求导 d˙MAd˙MOd˙CA−d˙CO\dot d_{_{MA}}\dot d_{_…

《计算机组成与系统结构(第二版) 裘雪红 李伯成 西安电子科技大学出版社》课后习题答案(带解析)(三)

声明&#xff1a;此系列答案配套《计算机组成与系统结构&#xff08;第二版&#xff09; 裘雪红 李伯成 西安电子科技大学出版社》一书相关内容。所有内容为博主个人编辑&#xff0c;仅作参考学习交流之用&#xff0c;转载请注明出处。如发现错误&#xff0c;请联系博主及时勘误…

Spring解决循环依赖为什么需要三级缓存?

前言什么是循环依赖呢&#xff1f;我们抛开Spring这个框架来聊下什么是循环依赖&#xff0c;循环依赖可能在我们平时的开发过程中是属于比较常见的。Spring容器最大的功能就是对bean的生命周期进行管理&#xff0c;每个bean在创建的过程中&#xff0c;需要得到一个完整的bean需…

python2.75升级到python3

linux centos7.6版本默认的python是2.7&#xff0c;现在想安装python3.8&#xff0c;操作如下下载python3.8安装包&#xff1a;wget http://npm.taobao.org/mirrors/python/3.8.0/Python-3.8.0.tgz&#xff0c;我执行的目录是cd /usr/local/解压下载的包&#xff1a;进入文件夹…

【LeetCode】剑指 Offer(7)

目录 写在前面&#xff1a; 题目剑指 Offer 17. 打印从1到最大的n位数 - 力扣&#xff08;Leetcode&#xff09; 题目的接口&#xff1a; 解题思路&#xff1a; 代码&#xff1a; 过啦&#xff01;&#xff01;&#xff01; 题目&#xff1a;剑指 Offer 18. 删除链表的节…

【项目精选】jsp企业快信系统(论文+视频+源码)

点击下载源码 计算机网络的出现到现在已经经历了翻天覆地的重大改变。因特网也从最早的供科学家交流心得的简单的文本浏览器发展成为了商务和信息的中心。到了今天&#xff0c;互联网已经成为了大量应用的首选平台&#xff0c;人们已经渐渐习惯了网络交易&#xff0c;渐渐对网络…