Codeforces(722D)-Generating Sets
来源:互联网 发布:张辛苑的淘宝店 编辑:程序博客网 时间:2024/05/23 13:17
原题链接
用二分枚举最大值d, 在遍历每一个数num[i], 判断其是否大于d, 若大于,则除二,并且利用set判重,直到除到小于d,且不重复即可
#include <iostream>#include <cstdio>#include <algorithm>#include <cstring>#include <vector>#include <set>#define maxn 100005using namespace std;typedef long long ll;set<int> s;int num[50005], n; bool judge(int m){for(int i = 0; i < n; i++){if(num[i] <= n && s.count(num[i]) == 0) s.insert(num[i]);else{int h = num[i];while(h >= 1 && (h > m || s.count(h))){h /= 2;}if(h == 0) return false;s.insert(h);}}return true;}int main(){//freopen("in.txt", "r", stdin);int l = 0, r = 0;scanf("%d", &n);for(int i = 0; i < n; i++){ scanf("%d", num+i); r = max(r, num[i]); } while(l < r){ s.clear(); int mid = (l + r) >> 1; if(judge(mid)) r = mid; else l = mid + 1; } s.clear(); judge(l); set<int> ::iterator iter = s.begin(); printf("%d", *iter++); for(; iter != s.end(); iter++){ printf(" %d", *iter); } puts(""); return 0;}
0 0
- codeforces 722D. Generating Sets
- Codeforces(722D)-Generating Sets
- 【53.57%】【codeforces 722D】Generating Sets
- CodeForces 722D Generating Sets 贪心+Set
- codeforces 722D Generating Sets (二叉树 + 贪心)
- Codeforces 722D Generating Sets【优先队列+贪心】
- 【Codefoces 722 D Generating Sets】+ 贪心 + map
- Generating Sets
- Codeforces 486D. Valid Sets
- codeforces 468D Valid Sets
- CodeForces 486D Valid Sets
- Codeforces 251D Two Sets
- Codeforces 476D. Dreamoon and Sets
- 【构造】 Codeforces 476D Dreamoon and Sets
- D. Dreamoon and Sets(Codeforces Round #272)
- codeforces 486d Valid Sets dp
- Codeforces 486D Valid Sets(暴力)
- D. Dreamoon and Sets(Codeforces Round #272)
- 正则表达式
- 30. 实体和编码(2)
- 1.3Android Studio如何集成Genymotion
- 扒一扒ARM Cortex-M各版本的第一款MCU
- mapreduce之倒排索引代码
- Codeforces(722D)-Generating Sets
- Vim学习指南
- 微信小程序尝鲜
- 1000的阶乘-HDU 1042-大数阶乘(万进制思想)
- 单显卡台式机(Ubuntu15.04+Win7)安装Cuda7.5+cuDnn v4 心路历程
- 积性函数前缀和求和的方法
- 第一次机房收费之充值
- Go语言基础:变量赋值顺序
- HDU5908 Abelian Period(模拟暴力)