三国游戏(第十四届蓝桥杯)

2024-01-22 04:52

本文主要是介绍三国游戏(第十四届蓝桥杯),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

题目

小蓝正在玩一款游戏。游戏中魏蜀吴三个国家各自拥有一定数量的士兵 X,Y,Z(一开始可以认为都为 0)。

游戏有 n个可能会发生的事件,每个事件之间相互独立且最多只会发生一次,当第 i个事件发生时会分别让 X,Y,Z
增加 A i , B i , C i A_i,B_i,C_i Ai,Bi,Ci

当游戏结束时 (所有事件的发生与否已经确定),如果 X,Y,Z的其中一个大于另外两个之和,我们认为其获胜。
例如,当 X>Y+Z时,我们认为魏国获胜。
小蓝想知道游戏结束时如果有其中一个国家获胜,最多发生了多少个事件?
如果不存在任何能让某国获胜的情况,请输出 −1。

输入格式
输入的第一行包含一个整数 n。
第二行包含 n个整数表示 A i A_i Ai,相邻整数之间使用一个空格分隔。
第三行包含 n个整数表示 B i B_i Bi,相邻整数之间使用一个空格分隔。
第四行包含 n 个整数表示 C i C_i Ci,相邻整数之间使用一个空格分隔。

输出格式
输出一行包含一个整数表示答案。

数据范围
对于 40%的评测用例,n≤500;
对于 70%的评测用例,n≤5000;
对于所有评测用例, 1 ≤ n ≤ 1 0 5 , 0 ≤ A i , B i , C i ≤ 1 0 9 1≤n≤10^5,0≤A_i,B_i,C_i≤10^9 1n1050Ai,Bi,Ci109
注意,蓝桥杯官方给出的关于 A i , B i , C i A_i,B_i,C_i Ai,Bi,Ci
的数据范围是 1 ≤ A i , B i , C i ≤ 1 0 9 1≤Ai,Bi,Ci≤10^9 1Ai,Bi,Ci109,但是这与给出的输入样例相矛盾,因此予以纠正。

输入样例:

3
1 2 2
2 3 2
1 0 7

输出样例:

2

样例解释

发生两个事件时,有两种不同的情况会出现获胜方。
发生 1,2 事件时蜀国获胜。
发生 1,3 事件时吴国获胜。

代码(python版本)

n=int(input())
def check(x,y,z)->int:w=[]for i in range(n):w.append(x[i]-y[i]-z[i])w.sort(reverse=True)res=-1sum=0for i in range(n):sum+=w[i]if sum>0:res=i+1return res
a=list(map(int,input().split()))
b=list(map(int,input().split()))
c=list(map(int,input().split()))
print(max(check(a,b,c),check(b,a,c),check(c,a,b)))

代码(cpp版本)

代码先欠着

思路:
本题是一道贪心题。当我一开始看这个题目的时候,首先想到的就是一道dfs题,但是当我看到数据范围为 1 0 5 10^5 105的时候我直接人傻,这还怎么dfs。于是换一个思路。
首先因为这个数据范围是 1 0 5 10^5 105,那么我们需要将时间复杂度控制在 n l o g n nlogn nlogn中。
本题要求的是一个国家打赢两个国家最多能发生多少次事件,看到最多,我就感觉是一道贪心题,那么怎么贪心呢?
首先我们需要想明白怎么贪?那我们可以先假设三个国家分别是ABC,然后我们假设 A > B + C A>B+C A>B+C,那么ABC到底是哪三个国家呢?这个直接可以枚举出来,A是魏蜀吴三个其中之一,剩下的B和C就是除了A以外的两个国家。
那么我们可以写一个函数来判断 A > B + C A>B+C A>B+C最多能要多少次
那么我们可以遍历ABC三个数组,然后用一个数组W来接受一下A国和B+C国的兵力差,也就是W[i]=A[i]-B[i]-C[i]的值,那么W[i]的含义是什么呢?很明显当W[i]>0的时候说明A的兵力比B+C的要多,这个事件我们当然要选。然后进行排序,接下来就是每次都获取到当前的兵力。然后用一个sum来记录,sum代表的是什么意思呢,就是A当前比B+C多sum个兵,然后我们依次进行遍历,sum不断累加W[i],当sum累加当前的兵力之后还是大于零,说明当前的事件容许发生,这时候就该让res++了。直到sum小于0的时候就不行了。
然后我们来看这个思路,整个的时间复杂度正好是 n l o g n nlogn nlogn(sort的时间复杂度)。
最后我们只需要调用上面的函数三次即可,也就是check(魏,蜀,吴),check(蜀,魏,吴),check(吴,蜀,魏),然后三者取最大值就行。

这篇关于三国游戏(第十四届蓝桥杯)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/631889

相关文章

Python开发围棋游戏的实例代码(实现全部功能)

《Python开发围棋游戏的实例代码(实现全部功能)》围棋是一种古老而复杂的策略棋类游戏,起源于中国,已有超过2500年的历史,本文介绍了如何用Python开发一个简单的围棋游戏,实例代码涵盖了游戏的... 目录1. 围棋游戏概述1.1 游戏规则1.2 游戏设计思路2. 环境准备3. 创建棋盘3.1 棋盘类

三国地理揭秘:为何北伐之路如此艰难,为何诸葛亮无法攻克陇右小城?

俗话说:天时不如地利,不是随便说说,诸葛亮六出祁山,连关中陇右的几座小城都攻不下来,行军山高路险,无法携带和建造攻城器械,是最难的,所以在汉中,无论从哪一方进攻,防守方都是一夫当关,万夫莫开;再加上千里运粮,根本不需要打,司马懿只需要坚守城池拼消耗就能不战而屈人之兵。 另一边,洛阳的虎牢关,一旦突破,洛阳就无险可守,这样的进军路线,才是顺势而为的用兵之道。 读历史的时候我们常常看到某一方势

国产游戏崛起:技术革新与文化自信的双重推动

近年来,国产游戏行业发展迅猛,技术水平和作品质量均得到了显著提升。特别是以《黑神话:悟空》为代表的一系列优秀作品,成功打破了过去中国游戏市场以手游和网游为主的局限,向全球玩家展示了中国在单机游戏领域的实力与潜力。随着中国开发者在画面渲染、物理引擎、AI 技术和服务器架构等方面取得了显著进展,国产游戏正逐步赢得国际市场的认可。然而,面对全球游戏行业的激烈竞争,国产游戏技术依然面临诸多挑战,未来的

火柴游戏java版

代码 /*** 火柴游戏* <p>* <li>有24根火柴</li>* <li>组成 A + B = C 等式</li>* <li>总共有多少种适合方式?</li>* <br>* <h>分析:</h>* <li>除去"+"、"="四根,最多可用火柴根数20根。</li>* <li>全部用两根组合成"1",最大数值为1111。使用枚举法,A和B范围在0~1111,C为A+B。判断</li>** @

国产游戏行业的崛起与挑战:技术创新引领未来

国产游戏行业的崛起与挑战:技术创新引领未来 近年来,国产游戏行业蓬勃发展,技术水平不断提升,许多优秀作品在国际市场上崭露头角。从画面渲染到物理引擎,从AI技术到服务器架构,国产游戏已实现质的飞跃。然而,面对全球游戏市场的激烈竞争,国产游戏技术仍然面临诸多挑战。本文将探讨这些挑战,并展望未来的机遇,深入分析IT技术的创新将如何推动行业发展。 国产游戏技术现状 国产游戏在画面渲染、物理引擎、AI

C语言蓝桥杯

一、语言基础 竞赛常用库函数 最值查询 min_element和max_element在vector(迭代器的使用) nth_element函数的使用 例题lanqiao OJ 497成绩分析 第一种用min_element和max_element函数的写法 第二种用min和max的写法 二分查找 二分查找只能对数组操作 binary_s

第四次北漂----挣个独立游戏的素材钱

第四次北漂,在智联招聘上,有个小公司主动和我联系。面试了下,决定入职了,osg/osgearth的。月薪两万一。 大跌眼镜的是,我入职后,第一天的工作内容就是接手他的工作,三天后他就离职了。 我之所以考虑入职,是因为 1,该公司有恒歌科技的freex平台源码,可以学学,对以前不懂的解解惑。 2,挣点素材钱,看看张亮002的视频,他用了6000多,在虚幻商城买的吸血鬼游戏相关的素材,可以玩两年。我

nyoj 1038 纸牌游戏

poj 的一道改编题,说是翻译题更恰当,因为只是小幅度改动。 一道模拟题,代码掌控能力比较好,思维逻辑清晰的话就能AC。 代码如下: #include<stdio.h>#include<string.h>#include<algorithm>using namespace std;struct node{char c[5];int rk;char da[5];int nu

如果出一个名叫白神话悟空的游戏

最近黑神话由于与原著不符引起了原著派的争议。 所以我在摸鱼的时候想到如果游科或者某个别的公司“痛改前非”不夹带私货完全复刻吴承恩百回版剧情制作一个“重走西游路”的游戏,会有一个什么样的销量?(设定为原著派已经多方渠道认证,此游戏的确没有夹带私货,绝大部分复刻了原著剧情) 游戏玩法我想了几类 超长线性有岔路蜈蚣形状地图,蜈蚣的腿部是探索区域和支线,重走西游路线,开篇就是开始取经前唐玄宗御弟cg

《黑暗之魂2:原罪学者》是什么类型的游戏 《黑暗之魂》可以在苹果Mac电脑上玩吗?

在宏大的世界观游戏中,《黑暗之魂2:原罪学者》脱颖而出,以其探索性和挑战性征服了全球玩家的心灵。下面我们来看看《黑暗之魂2:原罪学者》是什么类型的游戏,《黑暗之魂2:原罪学者》可以在苹果电脑玩吗的相关内容。 一、《黑暗之魂2:原罪学者》是什么类型的游戏 《黑暗之魂2:原罪学者》作为《黑暗之魂2》的增强版和重制版,是一款FromSoftware制作、BANDAI NAMCO和FromSoft