博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
2016 ACM-ICPC Asia China-Final D 二分
阅读量:6616 次
发布时间:2019-06-24

本文共 1151 字,大约阅读时间需要 3 分钟。

 

 

 

 

题意:一共有N个冰淇淋球,做一个冰淇淋需要K个球,并且由于稳定性,这K个球还必须满足上下相邻的下面比上面大至少两倍。先给出N个球的质量,问最多能做出多少个冰淇淋?

思路:二分答案并对其检验

检验标准是:首先对B[]排序后将前m个取出来作为m个冰淇淋的顶端,之后选A[i]时,找最小的p使B[p]>2×A[i-m]的B[p]作为A[i],这样p最多就只跑一遍(线性)。

代码:

 

1 //#include "bits/stdc++.h" 2 #include "cstdio" 3 #include "map" 4 #include "set" 5 #include "cmath" 6 #include "queue" 7 #include "vector" 8 #include "string" 9 #include "cstring"10 #include "time.h"11 #include "iostream"12 #include "stdlib.h"13 #include "algorithm"14 #define db double15 #define ll long long16 //#define vec vector
17 #define Mt vector
18 #define ci(x) scanf("%d",&x)19 #define cd(x) scanf("%lf",&x)20 #define cl(x) scanf("%lld",&x)21 #define pi(x) printf("%d\n",x)22 #define pd(x) printf("%f\n",x)23 #define pl(x) printf("%lld\n",x)24 #define rep(i, x, y) for(int i=x;i<=y;i++)25 const int N = 1e6 + 5;26 const int mod = 1e9 + 7;27 const int MOD = mod - 1;28 const db eps = 1e-18;29 const db PI = acos(-1.0);30 using namespace std;31 int t,n,k;32 ll a[N],b[N];33 bool cal(int x)34 {35 int p=x;36 for(int i=0;i
a[p]&&p

 

转载于:https://www.cnblogs.com/mj-liylho/p/8024908.html

你可能感兴趣的文章
第3部分。XAML标记扩展
查看>>
Linux 定时运行脚本、命令
查看>>
如何让你的程序运行的更快(1)之续---揭秘StringBuffer的capacity
查看>>
php mysqli mysqli_query() mysqli_real_query()
查看>>
开源欣赏wordpress之用户新增user-new.php
查看>>
管理Mysql常用指令
查看>>
jQuery 2.0.3 源码分析 数据缓存
查看>>
nginx访问报错:Too many open files accept:
查看>>
NSPredicate,谓词
查看>>
MVC自定义路由的配置,必须把自己的路由写在前面
查看>>
[翻译]Java Swing(1)
查看>>
基于suse linux系统的cacti系统部署——rpm包方式
查看>>
解密jQuery内核 DOM操作的核心buildFragment
查看>>
重建索引提高SQL Server性能<转>
查看>>
大公司的流量变现
查看>>
Linux进程管理(2)
查看>>
将eclipse中项目的Text File Encoding设置成为GBK
查看>>
对control file的学习笔记
查看>>
JavaScript与有限状态机
查看>>
Sharepoint 2010 以及Office 2010 RTM
查看>>