当前位置: 首页 > news >正文

A - dry

贪心+堆 可过

#include<cstdio>
#include<cstring>
#include<cmath>
#include<iostream>
#include<algorithm>
#include<queue>
using namespace std;
typedef long long LL;
inline void read(LL& x)
{
	char c=getchar();bool flag=0;x=0;
	while(c<'0'||c>'9'){if(c=='-')flag=true;c=getchar();}
	while(c>='0'&&c<='9'){x=x*10+c-'0';c=getchar();}
	flag?x=-x:1;
}

LL n,A,B,now = 0;
priority_queue<LL> q;
int main(void)
{
#define ACK
#ifdef ACK
	freopen("dry.in","r",stdin);
	freopen("dry.out","w",stdout);
#endif
	read(n),read(A),read(B);
	LL t;
	for(register int i=1;i<=n;i++)
	{
		read(t);
		q.push(t);
	}
	LL Max,cnt = 1;
	while(!q.empty())
	{
		Max = q.top();q.pop();
		if(Max<=A*cnt)break;
		cnt++;
		Max-=B;
		q.push(Max);
	}
	printf("%d",cnt);
	return 0;
}

或者二分答案。【贪心好写但是二分答案要快。。当然不是裸二分,二分答案你可以很显然地推出一个上下界。。当然直接飙极限也可以,但是注意防int溢出】

#include<cstdio>
#include<cstring>
#include<cmath>
#include<iostream>
#include<algorithm>
using namespace std;
inline void read(long long& x)
{
	char c=getchar();bool flag=0;x=0;
	while(c<'0'||c>'9'){if(c=='-')flag=true;c=getchar();}
	while(c>='0'&&c<='9'){x=x*10+c-'0';c=getchar();}
	flag?x=-x:1;
}
#define maxn 500010
long long n,A,B;
long long a[maxn],Max=0,cnt,cut;
inline bool check(long long t)
{
	long long res = t;
	for(int i=1;i<=n;i++)
	{
		if(res<0)return false;
		if(a[i]>t*A){
			res-=(a[i]-t*A)/B;
			if((a[i]-t*A)%B!=0)res--;
		}
	}
	return res>=0?true:false;
}
int main(void)
{
#define ACK
#ifdef ACK
	freopen("dry.in","r",stdin);
	freopen("dry.out","w",stdout);
#endif
	read(n),read(A),read(B);
	for(int i=1;i<=n;i++)
	{
		read(a[i]);
		Max = max(Max,a[i]);
	}
	long long low = Max/(A+B),high = Max/A+(Max%A==0?0:1);
//	int low = 1,high = maxn;
	long long ans=low,mid;
	while(low<=high)
	{
		mid = (low+high+1)/2;
		if(check(mid)){
			ans = mid;
			high = mid-1;
		}else
		{
			low = mid+1;
		}
	}
	printf("%I64d",ans);
	return 0;
}



相关文章:

  • C - Wall
  • B - poset
  • git-ssh 配置和使用
  • 【并查集】构造完全图
  • FPS 集合 [Trie树]
  • [ZJOI 2013] bzoj3110 K大数查询 【树套树】
  • HTML特殊符号对照表
  • [RQNOJ 696] 【树形DP】
  • 汇编指令大全(有注释)
  • 【codevs 3044】 矩形面积求并 【线段树 扫描线 离散化】
  • 【Hdu 5723】Abandoned country【2016 Multi-University Training Contest 1】
  • 单调队列与单调栈总结
  • CDOJ 卿学姐与公主 【分块 入门题】
  • 分块练习 B
  • 【CodeForces 676】B - Pyramid of Glasses
  • Centos6.8 使用rpm安装mysql5.7
  • javascript 总结(常用工具类的封装)
  • java小心机(3)| 浅析finalize()
  • JS数组方法汇总
  • Koa2 之文件上传下载
  • Mithril.js 入门介绍
  • node 版本过低
  • pdf文件如何在线转换为jpg图片
  • Redux系列x:源码分析
  • spark本地环境的搭建到运行第一个spark程序
  • Spring Boot MyBatis配置多种数据库
  • Vue--数据传输
  • 产品三维模型在线预览
  • 关于Java中分层中遇到的一些问题
  • 前端每日实战 2018 年 7 月份项目汇总(共 29 个项目)
  • 我看到的前端
  • linux 淘宝开源监控工具tsar
  • #1015 : KMP算法
  • #大学#套接字
  • #免费 苹果M系芯片Macbook电脑MacOS使用Bash脚本写入(读写)NTFS硬盘教程
  • $(document).ready(function(){}), $().ready(function(){})和$(function(){})三者区别
  • (1)(1.13) SiK无线电高级配置(六)
  • (1)(1.19) TeraRanger One/EVO测距仪
  • (八)光盘的挂载与解挂、挂载CentOS镜像、rpm安装软件详细学习笔记
  • (搬运以学习)flask 上下文的实现
  • (附源码)springboot电竞专题网站 毕业设计 641314
  • (十一)手动添加用户和文件的特殊权限
  • ***通过什么方式***网吧
  • .jks文件(JAVA KeyStore)
  • .net mvc 获取url中controller和action
  • .net 受管制代码
  • .Net小白的大学四年,内含面经
  • .NET性能优化(文摘)
  • .net中我喜欢的两种验证码
  • @Autowired 与@Resource的区别
  • @private @protected @public
  • [ vulhub漏洞复现篇 ] Apache APISIX 默认密钥漏洞 CVE-2020-13945
  • [AAuto]给百宝箱增加娱乐功能
  • [ASP.NET MVC]Ajax与CustomErrors的尴尬
  • [c语言]小课堂 day2