zoukankan      html  css  js  c++  java
  • Luogu U18738

    Luogu U18738

    题意:有n个人来分工命题m个问题,给每道题一个难度值,每个人出一道或两道题,若人员充足,可以有一些人不出题。求在满足条件的方案中,

    使得对于所出题目难度之和最大的那个人,这个难度之和最小。

    思路:对这个序列排序,若命题人的数量大于题目数量,那么每个人可以只出一道题,那么答案肯定是序列中最大的那个值。

    若不满足,则需要m-n个人来出两道题,那么采用贪心法,为使最后这个序列中的最大值是所有方案中最小的,那么我们需要使

    1至(m-n)*2这个序列中的最大值最小,那么就从头尾取起即可,最后记得还要与序列中的最大值比较

    这题与Luogu1094有点类似。。。

    #include<cstdio>
    #include<algorithm>
    #define maxn 200050
    using namespace std;
    int a[maxn];
    int read(){
        int w=0;char c=getchar();
        while(c<'0'||c>'9') c=getchar();
        while(c>='0'&&c<='9') w=w*10+c-48,c=getchar();
        return w;
    }
    int main(){
        int n,m,y,i,ans=-2147483647;
        n=read();m=read();
        for(i=1;i<=n;i++)
        a[i]=read();
        sort(a+1,a+1+n);
        if(m>=n){
            printf("%d",a[n]);return 0;
        }
        y=n-m;
        for(i=1;i<=y;i++){
            ans=max(ans,a[i]+a[y*2-i+1]);
        }
        printf("%d",max(ans,a[n]));
        return 0;
    }
    Let's Splay
  • 相关阅读:
    jquery键盘事件
    如何将奇艺、优酷等平台的视频嵌入到项目中
    ubuntu 10.04 常用 设置
    博客风格收集
    多张图片上传预览
    动态计算输入框字符个数
    Ubuntu Linux下设置IP的配置命令
    js事件浏览器兼容
    开源软件下载站
    PHPstrom的一个小技巧
  • 原文地址:https://www.cnblogs.com/Fish-/p/8379310.html
Copyright © 2011-2022 走看看