zoukankan      html  css  js  c++  java
  • CF1197A

    CF1197A

    题意:

    定义k阶梯子为两边各一块木板长度至少k+1,中间k块木板至少为1 。问 给你n块木板,最多能搭成几阶的梯子。

    解法:

    读题两小时,代码五分钟。
    考虑贪心,构成梯子的两侧的木棍一定是越长越好。
    然后剩下的构成梯子的每一阶,如果木棍数量足够则答案就是第二长的木棍的长度减一,
    否则就是剩下的木棍的数量

    CODE:

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #include<algorithm>
     
    using namespace std;
     
    #define LL long long
    #define N 100010
     
    int a[N],n,T;
     
    int main() {
        scanf("%d",&T);
        while(T--) {
            scanf("%d",&n);
    		for(int i = 1 ; i <= n ; i++) 
                scanf("%d",&a[i]);
    		sort(a + 1,a + n + 1);
    		printf("%d
    ",min(n-2,min(a[n],a[n-1])-1));
        }
        //system("pause");
        return 0;
    }
    
  • 相关阅读:
    MidPayinfoVO
    IPayablebillItf
    预算oracle
    oracle怎么查看表字段的类型
    orcale授权
    ORCAL
    【转】Oracle
    其他网站api
    生成pdf入门
    有关一个java项目到eclipse中运行
  • 原文地址:https://www.cnblogs.com/Repulser/p/11427019.html
Copyright © 2011-2022 走看看