显然答案具有单调性,可以二分。问题是 我们二分出一个 堆数,该怎么判定能否达到这个堆数呢?

我们可以很简单的用调整法证明,最底下的一层的冰淇淋肯定是最小的那些,往上叠加的话我们再贪心的让较少的放在较小的上面,答案总不会更劣。

于是就口胡完了2333

#include<bits/stdc++.h>
#define ll long long
using namespace std;
const int maxn=300005;
int T,n,k,now,ans,L,R,mid,pre,N;
ll a[maxn],num[2][maxn];inline ll read(){ll x=0; char ch=getchar();for(;!isdigit(ch);ch=getchar());for(;isdigit(ch);ch=getchar()) x=x*10ll+ch-'0';return x;
}inline bool can(){N=1,pre=0,now=1;for(int i=1;i<=mid;i++) num[now][i]=a[N++];for(int i=2;i<=k;i++){pre=now,now^=1;for(int j=1;j<=mid;j++){while(N<=n&&a[N]<2ll*num[pre][j]) N++;if(N>n) return 0;num[now][j]=a[N++];}}return 1;
}inline void solve(){ans=0,scanf("%d%d",&n,&k);for(int i=1;i<=n;i++) a[i]=read();sort(a+1,a+n+1);L=0,R=n/k;while(L<=R){mid=L+R>>1;if(can()) ans=mid,L=mid+1;else R=mid-1;}printf("%d\n",ans);
}int main(){scanf("%d",&T);for(int i=1;i<=T;i++){printf("Case #%d: ",i);solve();}return 0;
}

  

转载于:https://www.cnblogs.com/JYYHH/p/8867956.html

The 2016 ACM-ICPC Asia China-Final Contest Promblem D相关推荐

  1. 2016 ACM / ICPC Asia dalian Regional Contest 题解(11 / 11)【每日亿题2021 / 2 / 17】

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 目录 A .(2017 ACM ICPC dalian H)To begin or not to be ...

  2. 2016 ACM ICPC Asia Region - Tehran

    2016 ACM ICPC Asia Region - Tehran A - Tax 题目描述:算税. solution 模拟. B - Key Maker 题目描述:给出\(n\)个序列,给定一个序 ...

  3. 2017 ACM ICPC Asia Shenyang Regional Contest 题解(10 / 13)【每日亿题2 / 16】

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 目录 A.(2017 ICPC shenyang I)Little Boxes B.(2017 ICP ...

  4. 2016 ACM/ICPC Asia Regional Shenyang Online

    I:QSC and Master 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5900 题意: 给出n对数keyi,vali表示当前这对数的键值和权值 ...

  5. 2016 ACM/ICPC Asia Regional Qingdao Online 1005 Balanced Game

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5882 Problem Description Rock-paper-scissors is a ze ...

  6. 2016 ACM/ICPC Asia Regional Dalian Online

    1009 Sparse Graph(hdu5876) 由于每条边的权值都为1,所以最短路bfs就够了,只是要求转置图的最短路,所以得用两个set来维护,一个用来存储上次扩散还没访问的点,一个用来存储这 ...

  7. Hdu 5873 2016 ACM/ICPC Asia Regional Dalian Online 1006(兰道定理)

    题解: 如果没有平手选项, 赢得加一分的话, 可以用Landau's Theorem(兰道定理)判定. 稍微修改一下这个定理就能做了. 假设S1,S2--,Sn是他们的得分序列,从小到大排个序.那么这 ...

  8. [Contests]2016 ACM/ICPC Asia Regional Dalian Online(1006/7/8/9)

    1006 Football Games 题意: 每组球队中有若干个队伍,每两个队伍之间比赛,胜得2分,负得0分,平局得1分: 然后判断题目给出的每组队伍得分是否合理,若合理输出"T" ...

  9. The 36th ACM/ICPC Asia Regional Dalian Site 1006 Dave

    Dave Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 65768/65768K (Java/Other) Total Submissi ...

  10. 2014 ACM/ICPC Asia Regional Guangzhou Online C题Wang Xifeng's Little Plot(dfs)

    Wang Xifeng's Little Plot Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Jav ...

最新文章

  1. mysql nan_mysql在工作中的积累
  2. Redis的配置文件
  3. boost::hana::alignof_用法的测试程序
  4. hive执行drop卡死一例:java.lang.NoSuchMethodError: org.apache.commons.lang3.StringUtils.isAnyBlank
  5. 前端路由的原生代码实现?前端如何监听路由变化?
  6. 如何获取不重复的随机数
  7. shell-数组排序
  8. 小学生学计算机动画,小学生电脑绘画软件_电脑绘画之“卡通小熊”
  9. 分享这几个在线语音转文字的方法,快快收藏好
  10. 《15款最好用的新浪短链接(t.cn接口)在线生成工具》
  11. VIP视频会员,无限制看剧对人的自制力,产生了严重的考验和折磨
  12. 文件管理大师android,文件管理大师
  13. android 字体加粗
  14. RUNA WFE,workflow environment based on JBoss' JBPM engine
  15. ES ILM 生命周期管理
  16. 作为一本书,“卷”赢竞争对手的最佳姿势是?
  17. c语言实现动态二维数组
  18. 端午假期你是如何过的?
  19. Linux_mv命令移动文件夹下所有文件以及“Argument list too long”问题的解决方法
  20. APP如何选择合适的服务器

热门文章

  1. k8s secret使用方式:pod通过变量和volume方式使用secret
  2. linux 产生0~3之间的随机数
  3. k8s:服务发现Service
  4. HBase 名称空间namespace的创建/建表/删除
  5. Java客户端操作elasticsearch--查询索引库(带分页)
  6. Scala高阶函数详解
  7. 抑郁症自测量表测试软件,快来测测抑郁--抑郁自评量表 (此表是是收费工具,我献给大家)...
  8. linux安装系统配置环境变量,Linux系统安装jdk及配置环境变量的方法
  9. Qt C++属性类型提供给 QML调用(二)
  10. stateflow中终止节点小记