C - Bacteria(优先队列)
C - Bacteriahttps://vjudge.csgrandeur.cn/problem/Gym-101911C问题简述:给定n个细胞以及每个细胞的大小,相同的细胞能进行融合,如果能融合到只剩1个细胞则输出需要额外增加多少细胞才能把全部融合到只剩一个细胞,如果不能则输出-1.
思路:每次取出最小和次小的元素x1,x2,如果x1=x2,删掉这两个元素,把x1+x2入队列,如果x1不等于x2,把最小的元素删除,再把x1*2加到队列里面(相当于加了一个元素x1,把两个x1合并),直到队列只剩一个元素(说明可能实现把所有元素归到一个上),如果队列里元素一直大于一个,说明无法把所有元素归到一个上。
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int main()
{ll n;while(~scanf("%lld",&n)){priority_queue<ll,vector<ll>,greater<ll>>q;ll x;for(int i=0;i<n;i++){scanf("%lld",&x);q.push(x);}ll cnt=0;ll x1,x2;ll f=0;if(n==1){printf("0\n");}else{while(!q.empty()){x1=q.top();q.pop();if(!q.empty()){x2=q.top();if(x1==x2){x1=x1+x2;q.pop();q.push(x1);}else{x1=2*x1;q.push(x1);cnt++;}}if(cnt>3e5)//加了这么多还没有合成一个说明不能合成一个了{f=1;break;}}if(f==0)printf("%lld\n",cnt);elseprintf("-1\n");}}
}
C - Bacteria(优先队列)相关推荐
- Bacteria(优先队列)
题目链接:http://codeforces.com/gym/101911/problem/C 问题简述:给定n个细胞以及每个细胞的大小,相同的细胞能进行融合,如果能融合到只剩1个细胞则输出需要额外增 ...
- 优先队列的应用 C++实现
优先队列的应用 C++实现 优先队列可以用堆来实现, 堆底层可以用数组表示, 通过索引关系,可以表示成一颗二叉完全树 C++的STL提供了相应的容器适配器 包含在queue头文件中 下面通过一道题来看 ...
- ccf 交通规划(迪杰斯特拉优先队列模板)
什么跟什么就是刘汝佳小白书迪杰斯特拉队列的优先队列法 #include<bits/stdc++.h> using namespace std; #define INF 0x3f3f3f3f ...
- c++ std::priority_queue优先队列
template <class T, class Container = vector<T>,class Compare = less<typename Container:: ...
- 《程序设计解题策略》——1.6 利用左偏树实现优先队列的合并
本节书摘来自华章计算机<程序设计解题策略>一书中的第1章,第1.6节,作者:吴永辉 王建德 更多章节内容可以访问云栖社区"华章计算机"公众号查看. 1.6 利用左偏树实 ...
- 排序(一)归并、快排、优先队列等(图文具体解释)
排序(一) 0基础排序算法 选择排序 思想:首先,找到数组中最小的那个元素.其次,将它和数组的第一个元素交换位置.再次.在剩下的元素中找到最小的元素.将它与数组的第二个元素交换位置. 如此往复,直到将 ...
- MYSQL实现ORDER BY LIMIT的方法以及优先队列(堆排序)
一.MYSQL中的LIMIT和ORACLE中的分页 在MYSQL官方文档中描述limit是在结果集中返回你需要的数据,它可以尽快的返回需要的行而不用管剩下的行, 在ORACLE中也有相关的语法比如 1 ...
- 373. Find K Pairs with Smallest Sums (java,优先队列)
题目: You are given two integer arrays nums1 and nums2 sorted in ascending order and an integer k. Def ...
- 暑期集训4:栈,树,优先队列 例 : UVA - 514
2018学校暑期集训第四天--栈,树,优先队列 例题 -- UVA - 514 Rails There is a famous railway station in PopPush City. ...
最新文章
- Mybatis中的模糊查询
- Github for Windows使用图文教程
- java方法和变量修饰符有哪些_死磕Java基础---类,变量和方法的修饰符
- VB与C#代码转换在线工具,亲测好用
- linux下php反编译apk,php反编译
- 如何在 C# 中使用 Exceptionless
- void函数调用时显示不允许使用不完整的_4位数码管显示模块驱动
- http://www.cnoug.org/viewthread.php?tid=9292
- Codeforces Round #415 (Div. 2) C. Do you want a date?
- PyCharm 默认运行 unittest
- SPOJ Pouring Water
- android adb日志过滤包名,adb过滤只查看某一个app的日志
- 抖音上显示内部服务器错误,抖音被限流了怎么办?这里分析了原因和解决方法...
- [重庆思庄每日技术分享]-数据库创建组件时报错ORA-30554: XDB.XDB$ACL_XIDX is disabled
- 20145222何志威《网络对抗》- Web安全基础实践
- composition API重构mixin实践
- [蓝桥杯] 青出于蓝胜于蓝
- html+css+js百度首页制作+附源代码+实现简单【百度一下】功能
- 九九乘法表c语言编程10乘10,C语言编程九九乘法表
- 统计代码放在网站php,网站添加简单访客统计代码