zoukankan      html  css  js  c++  java
  • 洛谷P1199 三国游戏 博弈论 数学

    洛谷P1199 三国游戏
    博弈论 数学

    这道题 其实 人是必胜的
    能取到的最大值 为 每行第二大值中的最大值

    为什么呢
    假使第一次我们取到了我们心中的那个答案的所在行
    那么接着电脑会取 这一行最大值的对应行
    那么我们来分析一下电脑取的那个数在他取的那行的特点

    首先我们假设其不是最大值,因为矩阵中任意两个数不相同
    所以也就是说还有个数比他大,然后就是说电脑取的第二大或者第n大值就已经
    比我们取的第一大值要大了,说明我们取的行并不是每行第二大值中的最大值所在
    的行
    2、也就是说这个数必定为该行中的最大值
    那么就是说,这样一来,电脑和我们都取不到最大值,而我们是可以取到第二大值,
    电脑也是可以取到该行中第二大值的,既然都可以取到第二大值,那么我们肯定是取
    最大的第二大值,所以就是答案了,
    3、换句话说,就是我们每次想取到最大值,然后电脑都会来破坏,于是最终我们只能取
    到第二大值

     1 #include <cstdio>
     2 #include <cmath>
     3 #include <cstdlib>
     4 #include <cstring>
     5 #include <string>
     6 #include <algorithm>
     7 #include <iomanip>
     8 #include <iostream> 
     9 using namespace std ; 
    10 
    11 const int maxn = 511,inf = 1e9 ;
    12 int n,m,first,second,ans ;  
    13 int a[maxn][maxn] ; 
    14 
    15 inline int read() 
    16 {
    17     char ch = getchar() ; 
    18     int x = 0 ,f = 1 ; 
    19     while(ch<'0'||ch>'9') { if(ch=='-') f = -1 ; ch = getchar() ; } 
    20     while(ch>='0'&&ch<='9') { x = x*10+ch-48 ; ch = getchar() ; } 
    21     return x*f ; 
    22 }
    23 
    24 int main() 
    25 {
    26     n = read() ;  
    27     for(int i=1;i<=n;i++) 
    28         for(int j=i+1;j<=n;j++) a[ i ][ j ] = read() ; 
    29     for(int i=1;i<=n;i++) 
    30         for(int j=1;j<i;j++) a[ i ][ j ] = a[ j ][ i ] ; 
    31     for(int i=1;i<=n;i++) a[ i ][ i ] = -inf ; 
    32     
    33     ans = -inf ; 
    34     for(int i=1;i<=n;i++) 
    35     {
    36         first = -inf ;  second = -inf ; 
    37         for(int j=1;j<=n;j++) 
    38             if(a[ i ][ j ] > first ) 
    39             {
    40                 second = first ; 
    41                 first = a[ i ][ j ] ; 
    42             } 
    43             else if(a[ i ][ j ] > second) 
    44                     second = a[ i ][ j ] ; 
    45         ans = max(ans,second) ; 
    46     }
    47     printf("1
    ") ; 
    48     printf("%d
    ",ans) ; 
    49     return 0 ; 
    50 } 
  • 相关阅读:
    UVALive 7141 BombX
    CodeForces 722D Generating Sets
    CodeForces 722C Destroying Array
    CodeForces 721D Maxim and Array
    CodeForces 721C Journey
    CodeForces 415D Mashmokh and ACM
    CodeForces 718C Sasha and Array
    CodeForces 635C XOR Equation
    CodeForces 631D Messenger
    田忌赛马问题
  • 原文地址:https://www.cnblogs.com/third2333/p/7083298.html
Copyright © 2011-2022 走看看