三国游戏 洛谷p1199
来源:互联网 发布:淘宝做食品要什么条件 编辑:程序博客网 时间:2024/04/28 17:32
题目描述
小涵很喜欢电脑游戏,这些天他正在玩一个叫做《三国》的游戏。
在游戏中,小涵和计算机各执一方,组建各自的军队进行对战。游戏中共有 N 位武将(N为偶数且不小于 4),任意两个武将之间有一个“默契值”,表示若此两位武将作为一对组合作战时,该组合的威力有多大。游戏开始前,所有武将都是自由的(称为自由武将,一旦某个自由武将被选中作为某方军队的一员,那么他就不再是自由武将了),换句话说,所谓的自由武将不属于任何一方。
游戏开始,小涵和计算机要从自由武将中挑选武将组成自己的军队,规则如下:小涵先从自由武将中选出一个加入自己的军队,然后计算机也从自由武将中选出一个加入计算机方的军队。接下来一直按照“小涵→计算机→小涵→……”的顺序选择武将,直到所有的武将被双方均分完。然后,程序自动从双方军队中各挑出一对默契值最高
的武将组合代表自己的军队进行二对二比武,拥有更高默契值的一对武将组合获胜,表示两军交战,拥有获胜武将组合的一方获胜。
已知计算机一方选择武将的原则是尽量破坏对手下一步将形成的最强组合,它采取的具体策略如下:任何时刻,轮到计算机挑选时,它会尝试将对手军队中的每个武将与当前每个自由武将进行一一配对,找出所有配对中默契值最高的那对武将组合,并将该组合中的自由武将选入自己的军队。 下面举例说明计算机的选将策略,例如,游戏中一共有 6 个武将,他们相互之间的默契值如下表所示:
双方选将过程如下所示:
小涵想知道,如果计算机在一局游戏中始终坚持上面这个策略,那么自己有没有可能必
胜?如果有,在所有可能的胜利结局中,自己那对用于比武的武将组合的默契值最大是多
少?假设整个游戏过程中,对战双方任何时候均能看到自由武将队中的武将和对方军队的武将。为了简化问题,保证对于不同的武将组合,其默契值均不相同。
输入输出格式
输入格式:输入文件名为 sanguo.in,共 N 行。
第一行为一个偶数 N,表示武将的个数。
第 2 行到第 N 行里,第(i+1)行有(Ni)个非负整数,每两个数之间用一个空格隔
开,表示 i 号武将和 i+1,i+2,……,N 号武将之间的默契值(0≤默契值≤1,000,000,000)。
输出格式:输出文件 sanguo.out 共 1 或 2 行。
若对于给定的游戏输入,存在可以让小涵获胜的选将顺序,则输出 1,并另起一行输出
所有获胜的情况中,小涵最终选出的武将组合的最大默契值。
如果不存在可以让小涵获胜的选将顺序,则输出 0。
输入输出样例
6 5 28 16 29 27 23 3 20 1 8 32 26 33 11 12
132
8 42 24 10 29 27 12 58 31 8 16 26 80 6 25 3 36 11 5 33 20 17 13 15 77 9 4 50 19
177
说明
【数据范围】
对于 40%的数据有 N≤10。
对于 70%的数据有 N≤18。
对于 100%的数据有 N≤500。
对于一个小涵拿的i,小涵永远拿不到和i默契最大的j,因为选了i之后计算机一定会选掉j,既然拿不到最大的,小涵可以拿次大的,同理,对于计算机拿到的一个i,计算机也拿不到与i默契最大的j,因为计算机一定是在小涵拿了j之后拿的i,所以计算的最好的牌也只是次大,这样,小涵只需要拿所有次大中最大的就能保证赢。
#include<iostream>
#include<algorithm>
#define f(i,l,r) for(i=(l);i<=(r);i++)
using namespace std;
const int MAXN=505;
int a[MAXN][MAXN],n;
int main()
{
ios::sync_with_stdio(false);
int i,j,max1,max2,ans=0;
cin>>n;
f(i,1,n){
max1=max2=0;
f(j,i+1,n){
cin>>a[i][j];
a[j][i]=a[i][j];
}
f(j,1,n){
if(a[i][j]>max1){
max2=max1;
max1=a[i][j];
}
else if(a[i][j]>max2){
max2=a[i][j];
}
}
ans=max(ans,max2);
}
cout<<1<<endl<<ans<<endl;
return 0;
}
- 洛谷 P1199 三国游戏
- 洛谷 P1199 三国游戏
- 洛谷 P1199 三国游戏
- 洛谷 P1199 三国游戏
- 三国游戏 洛谷p1199
- 【博弈论】洛谷 P1199 三国游戏
- 洛谷P1199 三国游戏(博弈)
- P1199 三国游戏
- 洛谷 P1199 [NOIP2010普及组 T4] 三国游戏
- 洛谷1199-三国游戏
- 洛谷 1199 三国游戏
- 【NOIP2010】洛谷1199 三国游戏
- 三国游戏
- 三国游戏
- 洛谷 数学问题专题 三国游戏
- 三国游戏_洛谷1199_博弈
- 风云三国游戏检测
- 风云三国游戏检测
- Winccflexable触摸屏的报警
- 用face_recognition写一个简单的人脸识别分类的程序
- 数据结构常用技巧
- 【PDF下载】双11技术峰会之揭秘阿里虚拟互动实验室
- D09 MapReduce程序运行过程原理
- 三国游戏 洛谷p1199
- list
- 关于2017电子设计国赛四旋翼飞行器题目的经验总结与教训
- mac下面通过brew安装东西的时候报Error: Running Homebrew as root is extremely dangerous and no longer supported的解决
- redis基础——安装redis和java使用redis(不涉及命令,图文讲解,20170825时windows的redis版本3.2.100)
- source、sh、bash、./执行脚本的区别
- Kafka 0.11.0.0 producer&consumer java API实例
- 如何在Linux中进行C语言多文件编译
- CPU管理