zoukankan      html  css  js  c++  java
  • 【NOIP普及2010】三国游戏

    原题:

     

    首先可以发现一个性质

    每一行(或一列,实际上行和列是相同的)最大数必拿不到

    因为稽器人针对你,你也可以针对稽器人

    其次可以发现一个性质

    每一行次大数必能拿到

    你先拿走i,然后稽器人拿走第i行最大数,然后你就能拿到第i行次大了

    最后可以发现一个性质

    既然每一行的最大数没人拿得到,而次大数你又必能拿到

    那直接挑一个最大的次大数就vans了

    代码:

     1 #include<iostream>
     2 #include<cstdio>
     3 using namespace std;
     4 int n,a[510][510];
     5 int main(){
     6     cin>>n;
     7     for(int i=1;i<=n;++i)for(int j=1;j+i<=n;++j){
     8         scanf("%d",&a[i][j+i]);
     9         a[j+i][i]=a[i][j+i];
    10     }
    11     int ans=0;
    12     for(int i=1;i<=n;++i){
    13         int mx1=0,mx2=0;
    14         for(int j=1;j<=n;++j){
    15             if(a[i][j]>mx1)  mx2=mx1,mx1=a[i][j];
    16             else if(a[i][j]>mx2)  mx2=a[i][j];
    17         }
    18         ans=max(ans,mx2);
    19     }
    20     cout<<1<<endl<<ans<<endl;
    21     return 0;
    22 }
    View Code
  • 相关阅读:
    Hibernate官方文档翻译-(第二章,入门)
    关于我的Blog
    退役记
    考场上要写的emacs
    关于在linux下将caps lock键改成ctrl的方法
    SXOI2020退役记
    min_25筛学习笔记
    带花树学习笔记
    [CF438E] 小朋友和二叉树
    多项式中步
  • 原文地址:https://www.cnblogs.com/cdcq/p/12410133.html
Copyright © 2011-2022 走看看