HDU 5884 Sort (二分 贪心(k叉哈夫曼树))
来源:互联网 发布:大数据风控体系 编辑:程序博客网 时间:2024/05/16 14:52
官方题解:
代码:
#include<bits/stdc++.h>using namespace std;typedef long long ll;const int maxn = 1e5+5;int a[maxn];int n, T;namespace fastIO { #define BUF_SIZE 1000000 //fread -> read bool IOerror = 0; inline char nc() { static char buf[BUF_SIZE], *p1 = buf + BUF_SIZE, *pend = buf + BUF_SIZE; if(p1 == pend) { p1 = buf; pend = buf + fread(buf, 1, BUF_SIZE, stdin); if(pend == p1) { IOerror = 1; return -1; } } return *p1++; } inline bool blank(char ch) { return ch == ' ' || ch == '\n' || ch == '\r' || ch == '\t'; } inline void read(int &x) { char ch; while(blank(ch = nc())); if(IOerror) return; for(x = ch - '0'; (ch = nc()) >= '0' && ch <= '9'; x = x * 10 + ch - '0'); } #undef BUF_SIZE};using namespace fastIO;bool judge(int x){ priority_queue<int, vector<int>, greater<int> > pq; int cost = 0, s = 0; s = (n-1)%(x-1); if((n-1)%(x-1)) { s++; int tmp = 0; for(int i = 1; i <= (n-1)%(x-1)+1; i++) { cost += a[i]; if(cost > T) return 0; tmp += a[i]; } pq.push(tmp); } for(int i = s+1; i <= n; i++) pq.push(a[i]); while(pq.size() >= x) { int num = x; int tmp = 0; while(num--) { cost += pq.top(); if(cost > T) return 0; tmp += pq.top(); pq.pop(); } pq.push(tmp); } if(cost > T) return 0; return 1;}int main(void){ int _; read(_); while(_--) { read(n); read(T); for(int i = 1; i <= n; i++) read(a[i]); sort(a+1, a+1+n); int ans = 0, l = 2, r = n; while(l <= r) { int mid = (l+r)/2; if(judge(mid)) r = mid-1, ans = mid; else l = mid+1; } printf("%d\n", ans); } return 0;}
阅读全文
1 0
- HDU 5884 Sort (二分 贪心(k叉哈夫曼树))
- hdu 5884 Sort 二分 + K叉哈夫曼树 两个队列
- hdu 5884 Sort 二分+K哈夫曼树(解决不单调问题) 队列优化
- HDU 5884-Sort(队列+二分)
- hdu 5884 Sort(二分+哈夫曼树(队列))
- Hdu-5884 Sort(k叉哈夫曼树)
- hdu 4004 (二分+贪心)
- hdu-5248(贪心+二分)
- hdu5884 Sort(二分+K叉哈夫曼树)
- HDU 5884 Sort 2分 K叉哈夫曼树
- HDU-5884-Sort-二分加多叉哈夫曼树
- HDU-5122 K.Bro Sorting(贪心)
- HDU 5122 K.Bro Sorting (贪心)
- 【HDU】5248-序列变换(贪心+二分)
- HDU 1969 pie(贪心+二分)
- 贪心+二分 (分蛋糕)HDU - 1969
- hdu 5248 序列变换(二分+贪心)
- HDU 5884 Sort(哈夫曼树+二分)
- java 通过JDBC连接hive
- ES插件
- 你真的了解面试问题的意义吗?-java面试基础篇(1)-jvm
- 欢迎使用CSDN-markdown编辑器
- 数据结构 -- 栈ADT
- HDU 5884 Sort (二分 贪心(k叉哈夫曼树))
- 给自己一个两年
- C# GDI+ 绘图
- 集合Collection
- Tensorflow 实战(-) 基础知识
- 简述生成式对抗网络
- 网络编程项目(聊天室项目)
- (function($) {…})(jQuery);
- 2.2logistic回归