当前位置:网站首页>每日一题冲刺大厂第十六天 NOIP普及组 三国游戏
每日一题冲刺大厂第十六天 NOIP普及组 三国游戏
2022-04-23 02:10:00 【是泡泡】
大家好,我是泡泡,给大家带来每日一题的目的是为了更好的练习算法,我们的每日一题为了让大家练到各种各样的题目,熟悉各种题型,一年以后,蜕变成为一个不一样的自己!
欢迎关注点赞收藏️留言
️ :热爱C/C++与算法学习,云计算等,期待一起交流!
作者水平有限,如果发现错误,求告知,多谢!
高校算法学习社区:高校算法学习社区-CSDN社区云
一起加入刷题内卷大军,还可以加入专属内卷群,里面福利多多大佬多多!
目录
今日题目: 三国游戏
题目描述
小涵很喜欢电脑游戏,这些天他正在玩一个叫做《三国》的游戏。
在游戏中,小涵和计算机各执一方,组建各自的军队进行对战。游戏中共有 N 位武将(N为偶数且不小于4),任意两个武将之间有一个“默契值”,表示若此两位武将作为一对组合作战时,该组合的威力有多大。游戏开始前,所有武将都是自由的(称为自由武将,一旦某个自由武将被选中作为某方军队的一员,那么他就不再是自由武将了),换句话说,所谓的自由武将不属于任何一方。
游戏开始,小涵和计算机要从自由武将中挑选武将组成自己的军队,规则如下:小涵先从自由武将中选出一个加入自己的军队,然后计算机也从自由武将中选出一个加入计算机方的军队。接下来一直按照“小涵→计算机→小涵→……”的顺序选择武将,直到所有的武将被双方均分完。然后,程序自动从双方军队中各挑出一对默契值最高的武将组合代表自己的军队进行二对二比武,拥有更高默契值的一对武将组合获胜,表示两军交战,拥有获胜武将组合的一方获胜。
已知计算机一方选择武将的原则是尽量破坏对手下一步将形成的最强组合,它采取的具体策略如下:任何时刻,轮到计算机挑选时,它会尝试将对手军队中的每个武将与当前每个自由武将进行一一配对,找出所有配对中默契值最高的那对武将组合,并将该组合中的自由武将选入自己的军队。 下面举例说明计算机的选将策略,例如,游戏中一共有66个武将,他们相互之间的默契值如下表所示:
双方选将过程如下所示:
小涵想知道,如果计算机在一局游戏中始终坚持上面这个策略,那么自己有没有可能必胜?如果有,在所有可能的胜利结局中,自己那对用于比武的武将组合的默契值最大是多少?
假设整个游戏过程中,对战双方任何时候均能看到自由武将队中的武将和对方军队的武将。为了简化问题,保证对于不同的武将组合,其默契值均不相同。
输入格式
共 N 行。
第一行为一个偶数 N,表示武将的个数。
第 2行到第 N行里,第i+1行有Ni个非负整数,每两个数之间用一个空格隔开,表示i号武将和i+1,i+2,…,N号武将之间的默契值(0≤默契值≤1,000,000,000)。
输出格式
共 1 或 2行。
若对于给定的游戏输入,存在可以让小涵获胜的选将顺序,则输出1,并另起一行输出所有获胜的情况中,小涵最终选出的武将组合的最大默契值。如果不存在可以让小涵获胜的选将顺序,则输出 0。
题目分析
题目难度:️️
题目涉及算法:贪心,排序。
ps:有能力的小伙伴可以尝试优化自己的代码或者一题多解,这样能综合提升自己的算法能力
题解报告:
1.思路
最优解总是每一行(整理后)排名第二大中最大的那个,根据贪心,人去选每行次大元素中最大的一定能选到,此时也能阻止计算机去选更大的元素。同时人不会输。
2.代码
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n;
cin>>n;
int a[510][510];
for(int i=1;i<=n;i++)
{
for(int j=i+1;j<=n;j++)
{
cin>>a[i][j];
a[j][i] = a[i][j];
}
}
int sum=0;
for(int i=1;i<=n;i++)
{
sort(a[i]+1,a[i]+1+n);
if(a[i][n-1]>sum)
{
sum = a[i][n-1];
}
}
cout<<"1"<<endl<<sum;
return 0;
}
版权声明
本文为[是泡泡]所创,转载请带上原文链接,感谢
https://blog.csdn.net/qq_45400861/article/details/124354690
边栏推荐
- 每日一题(2022-04-21)——山羊拉丁文
- 001_redis设置存活时间
- leetcode:27. 移除元素【count remove小操作】
- Time. In ANSI standard library H header file
- LeetCode 283. Move zero (simple, array) Day12
- easyswoole环境配置
- 006_ redis_ Sortedset type
- What is a makefile file?
- 2018 China Collegiate Programming Contest - Guilin Site J. stone game
- What should I pay attention to when using proxy IP?
猜你喜欢

【dpdk】10. Dpdk DNS learning notes

Shardingsphere broadcast table and binding table

Shardingsphere read write separation

How to write the resume of Software Test Engineer so that HR can see it?

PTA: 点赞狂魔

Introduction to micro build low code zero Foundation (lesson 2)

我国科学家揭示突破水稻产量瓶颈新机制

Lane cross domain problem

Some tips for using proxy IP.

Micro build low code zero foundation introductory course
随机推荐
php 2022年4月20面试题整理
001_redis设置存活时间
Shardingsphere read write separation
Startup of openstack service
Thinkphp内核开发盲盒商城源码v2.0 对接易支付/阿里云短信/七牛云存储
【Chrome扩展程序】content_script的跨域问题
如何对代理IP进行分类?
Tp6 Alibaba cloud SMS window reports curl error 60: SSL certificate problem: unable to get local issuer certificate
从开源爱好者到 Apache 董事,一共分几步?
PHP sorting of interview questions on April 20, 2022
What should I pay attention to when using proxy IP?
从0开始开发一个chrome插件(2)
Multithreading technology core
[leetcode daily question] 396 Rotation function
Nanny level tutorial on building personal home page (II)
Gray scale range corresponding to colors (red, yellow, green, blue, purple, pink, brick red and magenta) in HSV color space
每日一题(2022-04-21)——山羊拉丁文
openstack 服务的启动
Arduino esp8266 network upgrade OTA
011_RedisTemplate操作Hash

