The 2016 ACM-ICPC Asia China-Final Contest Promblem D
显然答案具有单调性,可以二分。问题是 我们二分出一个 堆数,该怎么判定能否达到这个堆数呢?
我们可以很简单的用调整法证明,最底下的一层的冰淇淋肯定是最小的那些,往上叠加的话我们再贪心的让较少的放在较小的上面,答案总不会更劣。
于是就口胡完了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相关推荐
- 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 ...
- 2016 ACM ICPC Asia Region - Tehran
2016 ACM ICPC Asia Region - Tehran A - Tax 题目描述:算税. solution 模拟. B - Key Maker 题目描述:给出\(n\)个序列,给定一个序 ...
- 2017 ACM ICPC Asia Shenyang Regional Contest 题解(10 / 13)【每日亿题2 / 16】
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 目录 A.(2017 ICPC shenyang I)Little Boxes B.(2017 ICP ...
- 2016 ACM/ICPC Asia Regional Shenyang Online
I:QSC and Master 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5900 题意: 给出n对数keyi,vali表示当前这对数的键值和权值 ...
- 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 ...
- 2016 ACM/ICPC Asia Regional Dalian Online
1009 Sparse Graph(hdu5876) 由于每条边的权值都为1,所以最短路bfs就够了,只是要求转置图的最短路,所以得用两个set来维护,一个用来存储上次扩散还没访问的点,一个用来存储这 ...
- Hdu 5873 2016 ACM/ICPC Asia Regional Dalian Online 1006(兰道定理)
题解: 如果没有平手选项, 赢得加一分的话, 可以用Landau's Theorem(兰道定理)判定. 稍微修改一下这个定理就能做了. 假设S1,S2--,Sn是他们的得分序列,从小到大排个序.那么这 ...
- [Contests]2016 ACM/ICPC Asia Regional Dalian Online(1006/7/8/9)
1006 Football Games 题意: 每组球队中有若干个队伍,每两个队伍之间比赛,胜得2分,负得0分,平局得1分: 然后判断题目给出的每组队伍得分是否合理,若合理输出"T" ...
- 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 ...
- 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 ...
最新文章
- mysql nan_mysql在工作中的积累
- Redis的配置文件
- boost::hana::alignof_用法的测试程序
- hive执行drop卡死一例:java.lang.NoSuchMethodError: org.apache.commons.lang3.StringUtils.isAnyBlank
- 前端路由的原生代码实现?前端如何监听路由变化?
- 如何获取不重复的随机数
- shell-数组排序
- 小学生学计算机动画,小学生电脑绘画软件_电脑绘画之“卡通小熊”
- 分享这几个在线语音转文字的方法,快快收藏好
- 《15款最好用的新浪短链接(t.cn接口)在线生成工具》
- VIP视频会员,无限制看剧对人的自制力,产生了严重的考验和折磨
- 文件管理大师android,文件管理大师
- android 字体加粗
- RUNA WFE,workflow environment based on JBoss' JBPM engine
- ES ILM 生命周期管理
- 作为一本书,“卷”赢竞争对手的最佳姿势是?
- c语言实现动态二维数组
- 端午假期你是如何过的?
- Linux_mv命令移动文件夹下所有文件以及“Argument list too long”问题的解决方法
- APP如何选择合适的服务器
热门文章
- k8s secret使用方式:pod通过变量和volume方式使用secret
- linux 产生0~3之间的随机数
- k8s:服务发现Service
- HBase 名称空间namespace的创建/建表/删除
- Java客户端操作elasticsearch--查询索引库(带分页)
- Scala高阶函数详解
- 抑郁症自测量表测试软件,快来测测抑郁--抑郁自评量表 (此表是是收费工具,我献给大家)...
- linux安装系统配置环境变量,Linux系统安装jdk及配置环境变量的方法
- Qt C++属性类型提供给 QML调用(二)
- stateflow中终止节点小记