The 2016 ACM-ICPC Asia China-Final C (15/600)
来源:互联网 发布:centos 安装php7.1.5 编辑:程序博客网 时间:2024/05/01 06:12
Mr. Panda likes ice cream very much especially the ice cream tower. An ice cream tower consists
of K ice cream balls stacking up as a tower. In order to make the tower stable, the lower ice cream
ball should be at least twice as large as the ball right above it. In other words, if the sizes of the
ice cream balls from top to bottom are A0, A1, A2, · · · , AK−1, then A0 × 2 ≤ A1, A1 × 2 ≤ A2,
etc.
One day Mr. Panda was walking along the street and found a shop selling ice cream balls. There
are N ice cream balls on sell and the sizes are B0, B1, B2, · · · , BN−1. Mr. Panda was wondering
the maximal number of ice cream towers could be made by these balls.
Input
The first line of the input gives the number of test cases, T. T test cases follow. Each test
case starts with a line consisting of 2 integers, N the number of ice cream balls in shop and K
the number of balls needed to form an ice cream tower. The next line consists of N integers
representing the size of ice cream balls in shop.
Output
For each test case, output one line containing “Case #x: y”, where x is the test case number
(starting from 1) and y is the maximal number of ice cream towers could be made.
Limits
• 1 ≤ T ≤ 100.
• 1 ≤ N ≤ 3 × 105
.
• 1 ≤ K ≤ 64.
• 1 ≤ Bi ≤ 1018
.
Sample input and output
Sample Input Sample Output
3
4 2
1 2 3 4
6 3
1 1 2 2 4 4
6 3
1 1 2 2 3 4
Case #1: 2
Case #2: 2
Case #3: 1
就是个普通的二分….枚举答案
看行不行
检测的时候只要一层一层的贪心就可以了。。更大的不行那小的也不行
#include<iostream>#include<algorithm>#include<cstring>#include<cstdio>using namespace std;long long n, m, tu[300001],bj[300001];long long jiance(long long k){ memset(bj, 0, sizeof(bj)); long long p = 0; for (long long a = 1; a <= k; a++)bj[a] = tu[++p]; for (long long a = 1; a < m; a++) { for (long long b = 1; b <= k; b++) { p++; while (p <= n&&tu[p] < 2 * bj[b])p++; if (p > n)return 0; bj[b] = tu[p]; } } return 1;}int main(){ long long T; cin >> T; long long u = 0; while(T--) { cin >> n >> m; for (long long a = 1; a <= n; a++)scanf("%lld", &tu[a]); sort(tu + 1, tu + n + 1); long long y = n / m, z = 0; long long jieg = 0; while (z <= y) { long long mid = (z + y) / 2; if (jiance(mid)) { jieg = mid; z = mid + 1; } else y = mid - 1; } printf("Case #%lld: %lld\n", ++u, jieg); }}
- The 2016 ACM-ICPC Asia China-Final C (15/600)
- The 2016 ACM-ICPC Asia China-Final Contest H题 数学 + 思维
- Problem D. Ice Cream Tower (The 2016 ACM-ICPC Asia China-Final Contest)(二分)
- Ice Cream Tower The 2016 ACM-ICPC Asia China-Final Contest
- 2016-2017 ACM-ICPC CHINA-Final
- 2016 icpc china final
- [费用流] ACM-ICPC Asia China-Final Contest J. Mr.Panda and TubeMaster
- The 2014 ACM-ICPC Asia Mudanjiang Regional First Round C
- 2016 ICPC China Final 总结
- 1006 ACM again- Ancient China Mathematics again //The ACM/ICPC Asia Harbin Online First Round Contest 2010 Warmup-2
- The 2016 ACM-ICPC Asia Dalian Regional Contest(汇总)
- The 2016 ACM-ICPC Asia Tehran Regional Contest 部分题解!
- 2016-2017 ACM-ICPC CHINA-Final (慢慢做慢慢更新)
- 2016icpc China-final D题
- Cells 【THE 30th ACM/ICPC ASIA REGIONAL 2005 HANGZHOU SITE Problem C: C】
- zoj 3418 || The 2010 ACM-ICPC Asia Chengdu Regional Contest - C Binary Number
- The 2013 ACM-ICPC Asia Changsha Regional Contest C Zoj Collision
- The 2014 ACM-ICPC Asia Mudanjiang Regional First Round C ZOj 3811
- IOS核心动画高级三:图层几何学
- IntelliJ Idea 实现热部署 Spring Loaded spring-boot-devtools
- iOS 给scrollView的子view做Masonry的右约束和底约束
- 春风吹拂过柳梢,仿佛在梳着柳树的头发。春风吹过小草,小草跳起舞来,他们的舞姿多么优美啊! 看,春天来了,小动物们也高兴起来,快看,小喜鹊和大树在捉迷藏呢,她一会儿藏在白杨后面,一会儿藏在桦树后面;小蝴
- 10gRAC使用裸设备时的注意事项
- The 2016 ACM-ICPC Asia China-Final C (15/600)
- json前后台传输String的处理
- 下载器之订制NSOperation
- ftp限制访问其他目录
- 机器学习
- 2、Node.js => Hello World
- 转换成根据省份字母排序
- Android上实现仿IOS的导航栏TitleBar
- 我来了啊