P1199 [NOIP2010 普及组] 三国游戏 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
思路 贪心?
因为每次你拿当下默契值最大的武将时
计算机一定会将其拆散?
所以我们在已知计算机会拆散的情况下?
我们先选一个武将 ->计算机拆散 ->又到我们
接下来我们直接拿该武将匹配值中第二大的值 。
只要拿到所有第二大 ,而所有第一大又无法组成 ,所以我们必胜。
而对于胜利 我们直接拿所有第二大中最大的值 ,直接获胜 。
所以读好表后 ,sort排序找出第二大中最大的即可。
#include<iostream>
#include<algorithm>
using namespace ?std;
int a[500][500];
int main(){
?? ?int n;
?? ?cin>>n;
?? ?
?? ?int x=2;
?? ?for(int i=1;i<=n;i++){
?? ??? ?int j=x;
?? ??? ?while(j<=n){
?? ??? ??? ?cin>>a[i][j];
?? ??? ??? ?a[j][i]=a[i][j];
?? ??? ??? ?j++;
?? ??? ?}
?? ??? ?x++;
?? ?}
?? ?int maxx=0;
?? ?for(int i=1;i<=n;i++){
?? ??? ?sort(a[i]+1,a[i]+1+n);
?? ??? ?maxx=max(maxx,a[i][n-1]);
?? ?}
?? ?cout<<"1\n"<<maxx<<endl;
?? ?return 0;
}