zoukankan      html  css  js  c++  java
  • C

    菜到家了,题意都读不懂。

    题目大意:

    总共有n个人和n个数字

    n个人拍成一队,n个数字也是有顺序的

    你排在第m个位置

    按照顺序的每个人可以拿走这个序列中的第一个数字或者最后一个数字

    你可以在所有人操作开始前说服最多k个人

    让他们固定拿这个序列的第一个或者是最后一个数字

    问你在所有可能的情况中可以拿到的数字的最大值中的最小值(即,到你取得的时候,首尾两个数字你总是会取最大的那个,问这些数字中的最小值)

    题解:

    无论怎么拿,最终一定是剩下n-m+1个连续的一组数,一共有k个人可以选择放在前边还是放在后边,那么有m-1-k个人是不确定的。

    看一下数据,可以用两层for。所以暴力有i个人放在前端,然后有j个人不确定,j从i+1开始。

    code:

    #include<bits/stdc++.h>
    using namespace std;
    const int INF=1e9+7;
    const int N=1E5+7;
    int arr[N];
    void solve()
    {
    
        int n,m,k;
        cin>>n>>m>>k;
        k=min(k,m-1);
        for(int i=1;i<=n;i++) cin>>arr[i];
        int sum=0;
        for(int i=0;i<=k;i++){//有i个人选择前端
            int ans=INF;
            for(int j=i+1;j<=m-k+i;j++)//j个人不受控制。
            {
                ans=min(ans,max(arr[j],arr[j+n-m]));
            }
            sum=max(sum,ans);
        }
        cout<<sum<<endl;
    }
    int main(){
        int t;
        cin>>t;
        while(t--) solve();
        return 0;
    }
  • 相关阅读:
    Golang关键字—— var
    Ubuntu下搭建Golang开发环境
    CentOS安装MongoDB
    使用2-3法则设计分布式数据访问层
    8 种提升 ASP.NET Web API 性能的方法
    MongoDB 聚合之 MapReduce
    常用开源项目及工具汇总——持续更新
    了解一下jsp
    前苹果副总裁:如果你做的事情毫不费力,就是在浪费时间
    思考
  • 原文地址:https://www.cnblogs.com/Accepting/p/12258909.html
Copyright © 2011-2022 走看看