zoukankan      html  css  js  c++  java
  • JZOJ 2307. 【中山市选2011】新年礼物

    题目

    Description

      Windbreaker计划送一些项链给他的朋友们作为新年礼物。为了表示诚意,他决定自己制作全部的项链。他购买了若干种珍珠,每种珍珠都有特定的颜色。他要制作的项链都是M-完美的,也就是每条项链都是恰好由M种珍珠组成的。Windbreaker想知道他最多能送出多少条项链。给定每种珍珠的数目,你要回答的是Windbreaker最多可以制作多少条M-完美项链。
     

    Input

      输入包含多组测试数据。每组数据第一行是一个正整数n,代表有n种珍珠。第二行包含n个正整数,代表每种珍珠的数目。第三行包括1个正整数M,代表要制作的是M-完美项链。   输入数据以1行n=0结束。这组数据不用处理。

    Output

      对每组测试数据,输出一行答案,为一个整数,代表最多能制作的M-完美项链的数目。
     

    Sample Input

    5 3 3 3 3 3 5 6 1 2 3 4 5 6 5 0

    Sample Output

    3 3
     

    Data Constraint

    对20%的数据,有n<=10;

    对40%的数据,有n<=100;

    对100%的数据,有n<=1000,每种珍珠数目不超过2000,1<=M<=100。

     

    分析

    •  原来我想的是优先队列,一直去前m最大值,但不知道为啥一直0
    • 没有办法了,二分枚举答案判断合法性

    代码

     1 #include<iostream>
     2 #include<algorithm>
     3 using namespace std;
     4 long long f[10001];
     5 long long a[10001]; 
     6 long long n,m;
     7 bool check(long long now)
     8 {
     9     long long sum=0;
    10     for (int i=1;i<=n-m;i++)
    11        sum+=a[i];
    12     for (int i=n-m+1;i<=n;i++)
    13     {
    14         if (a[i]<now)
    15         {
    16             sum-=now-a[i];
    17             if (sum<0) return false;
    18         }
    19     }
    20     return true;
    21 }
    22 int main ()
    23 {
    24     cin>>n;
    25     while (n!=0)
    26     {
    27         long long ans=0;
    28         for (int i=1,x;i<=n;i++)
    29         {
    30             cin>>a[i];
    31             ans+=a[i]; 
    32         }
    33         cin>>m;
    34         sort(a+1,a+1+n);
    35         long long l=1,r=ans/m;
    36         while (l<=r)
    37         {
    38             long long mid=(l+r)/2;
    39             if (check(mid))
    40                 l=mid+1;
    41             else
    42                 r=mid-1;
    43         }
    44         cout<<r<<" ";
    45         cin>>n;
    46     }
    47 }

     

    为何要逼自己长大,去闯不该闯的荒唐
  • 相关阅读:
    hdu 1520
    poj 3468
    hdu 1698
    shell:实现linux服务器资源监控并发送告警邮件
    Tools:apache部署https服务
    自动化:客户端自动化工具比对
    python:爬虫获取淘宝/天猫的商品信息
    js:浏览器插件
    自动化:图像相似度比较,并标记不一样的地方
    Linux:常用命令【转载】
  • 原文地址:https://www.cnblogs.com/zjzjzj/p/10741192.html
Copyright © 2011-2022 走看看