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 } 
  • 相关阅读:
    androidimage: load large bitmap Efficiently
    display log information in terminal
    黑客人物介绍
    Linux 基础入门学习
    网络攻防 第四周学习总结
    网络攻防 第二周学习总结
    网络攻防 第三周学习总结
    SpringBoot入门Demo(Hello Word Boot)
    jquery的json对象与字符串之间转换
    Intellij IDEA导入web项目详解(解决访问的404)
  • 原文地址:https://www.cnblogs.com/third2333/p/7083298.html
Copyright © 2011-2022 走看看