专栏文章
P1199 [NOIP 2010 普及组] 三国游戏 题解
P1199题解参与者 2已保存评论 1
文章操作
快速查看文章及其快照的属性,并进行相关操作。
- 当前评论
- 1 条
- 当前快照
- 1 份
- 快照标识符
- @miqaf8yg
- 此快照首次捕获于
- 2025/12/04 01:35 3 个月前
- 此快照最后确认于
- 2025/12/04 01:35 3 个月前
思路
如果小涵想要获胜,就要选到默契值尽可能大的一对武将。但我们会发现,计算机选择的策略决定了小涵不可能选到这对武将,于是我们退而求其次,考虑次大值。
接着我们又发现,如果我们拿走了一个武将 ,那么计算机一定会拿走与 默契值最大的武将 ,这时,我们只需要拿走与 的默契值第二大的武将 就好了,此时计算机一定拿不到比小涵拿到的这对武将默契值更大的一对武将,因为默契值最大的一对武将被拆散了,而默契值第二大的一对武将在小涵的手上,故我们只需要一直用这个策略选下去,便可以让小涵手上默契值最大的一对武将的默契值始终比计算机手上默契值最大的一对武将更大,这样小涵就是必胜的。
Code
CPP#include<bits/stdc++.h>
using namespace std;
int n,a[505][505],ans;
int main(){
cin>>n;
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];//构造一个对称的二维表来存储武将之间的默契值
}
}
for(int i=1;i<=n;i++){
sort(a[i]+1,a[i]+1+n);//排序,求次大值
ans=max(ans,a[i][n-1]);//更新答案
}
cout<<1<<"\n"<<ans;//由于小涵是必胜的,所以我们直接输出1和默契值就好
return 0;//华丽结束
}
蒟蒻的第一篇题解,求过。
相关推荐
评论
共 1 条评论,欢迎与作者交流。
正在加载评论...