第十四届蓝桥杯C/C++b组冶炼金属(C语言版二分做法)
【问题描述】
小蓝有一个神奇的炉子用于将普通金属 O 冶炼成为一种特殊金属 X。这个 炉子有一个称作转换率的属性 V,V 是一个正整数,这意味着消耗 V 个普通金 属 O 恰好可以冶炼出一个特殊金属 X,当普通金属 O 的数目不足 V 时,无法 继续冶炼。 现在给出了 N 条冶炼记录,每条记录中包含两个整数 A 和 B,这表示本次 投入了 A 个普通金属 O,最终冶炼出了 B 个特殊金属 X。每条记录都是独立 的,这意味着上一次没消耗完的普通金属 O 不会累加到下一次的冶炼当中。 根据这 N 条冶炼记录,请你推测出转换率 V 的最小值和最大值分别可能是 多少,题目保证评测数据不存在无解的情况。
【输入格式】
第一行一个整数 N,表示冶炼记录的数目。 接下来输入 N 行,每行两个整数 A、B,含义如题目所述。
【输出格式】
输出两个整数,分别表示 V 可能的最小值和最大值,中间用空格分开。
【样例输入】
3
75 3
53 2
59 2
【样例输出】
20 25
思路:考场上当时想推公式没推出来,后来想到二分。首先每一个实验记录都有一个最大和最小转化率,我们用二分将其求出在与第二次的比较,直到实验记录为零。
二分的思想看图:
代码部分如下:
#include<stdio.h>
#include<stdlib.h>
int get(int a,int b){int l=1,r=1e9+1,mid;while(l < r){mid=(l+r)/2;if(a/mid <= b){r=mid;}else{l=mid+1;}}return r;
}
int min(int x,int y){if(x < y)return x;elsereturn y;
}
int max(int x,int y){if(x > y)return x;elsereturn y;
}
int main()
{int n,a,b,v_min=1,v_max=1e9;scanf("%d",&n);while(n--){scanf("%d%d",&a,&b);v_min=max(v_min,get(a,b));v_max=min(v_max,get(a,b-1)-1);}printf("%d %d",v_min,v_max);return 0;
}
第十四届蓝桥杯C/C++b组冶炼金属(C语言版二分做法)相关推荐
- 第十四届蓝桥杯模拟赛(第一期)——C语言版
1. 二进制位数 问题描述 十进制整数 2 在十进制中是 1 位数,在二进制中对应 10 ,是 2 位数. 十进制整数 22 在十进制中是 2 位数,在二进制中对应 10110 ,是 5 位数. 请问 ...
- 2023第十四届蓝桥杯C/C++B组省赛题解
2023蓝桥C/C++B组省赛 文章目录 2023蓝桥C/C++B组省赛 试题A: 日期统计 题目描述 枚举 参考代码 试题B: 01 串的熵 题目描述 枚举|模拟 参考代码 试题C: 冶炼金属 题意 ...
- 2022年第十四届蓝桥杯模拟赛【核酸日期】C语言详解
目录 题目 思路 代码实现 题目 核酸日期 问题描述 如果周一做核酸,周二显示核酸天数为 1 天,周三显示 2 天,以此类推,周六显示 5 天,周日显示 6 天. 小蓝在某一天做了一次核酸,请问他的核 ...
- 第十四届蓝桥杯第一期模拟赛 python
第十四届蓝桥杯python第一期模拟赛 文章目录 第十四届蓝桥杯python第一期模拟赛 1. 二进制位数 问题描述 答案提交 思路 参考答案 2. 晨跑 问题描述 答案提交 思路 参考答案 3. 调 ...
- 第十四届蓝桥杯第三期模拟赛 C/C++ B组 原题与详解
本篇文章对第十四届蓝桥杯第三期模拟赛所有的题目进行了详细解析.如果大家还想刷题的话,我给大家整理出了第十二届的省赛真题:第十二届省赛C/C++ B组真题.推荐大家可以去做一下. 文章目录 一.填空题 ...
- 第十四届蓝桥杯要开始了(2022年)
今天来安利一个计算机类的算法比赛,不能说是"安利",因为基本上每一个计算机专业的学生都知道这个比赛. 这个比赛的名气大到根本不需要我安利.... 1.多去参加一些竞赛或者社团活动 ...
- 第十四届蓝桥杯第一期模拟赛试题与题解 C++
第十四届蓝桥杯第一期模拟赛试题与题解 C++ 试题 A 题解:位运算 试题 B 题解:日历模拟 试题 C 题解:double 求和 试题 D 题解:枚举 试题 E 题解:二维前缀和 试题 F 题解:两 ...
- 第十四届蓝桥杯大赛软件赛省赛 C/C++ 大学 B 组
第十四届蓝桥杯大赛软件赛省赛 C/C++ 大学 B 组 注意!!!!!!!!!!这篇题解为赛时的个人做法,不代表是正确的,仅供参考. 更新:思路上应该都对,很多题都有细节错误,代码不用看了,太久没敲代 ...
- 第十四届蓝桥杯集训——for——判断质数/素数
第十四届蓝桥杯集训--for--判断质数/素数 目录 第十四届蓝桥杯集训--for--判断质数/素数 1.什么是质数/素数? 2.整除代码的表达方式? 3.判断素数代码 4.素数的价值 5.素数分布规 ...
最新文章
- Linux学习总结(四十七)NFS服务配置 上篇
- 用最少的机器支撑万亿级访问,微博6年Redis优化历程
- 房天下数据爬取及简单数据分析
- ubuntu 如何用root身份进行登录
- 对lIKE语句的优化
- 点餐小程序源码_微信小程序餐饮点餐商城前端模版
- 数百款惠普打印机易受严重RCE漏洞影响
- SqlServer查询表中某列相同值的最近记录
- CTF中压缩包的思路
- php $smarty-display,display - [ smarty完全中文手册 ] - 在线原生手册 - php中文网
- 尚硅谷Javaweb教程书城项目订单模块完整版
- Android的六大布局详解
- 在Ubuntu环境下配置Proxmark3(PM3)使用环境
- HTML5实现一个时钟动画,利用html5制作一个时钟动画效果
- 为什么重写equals方法必须要重写hashCode方法
- 合肥长鑫芯片服务器,进军DDR5/GDDR6/LPDDR5内存 合肥长鑫计划第三代10nm工艺
- ant+jmeter接口测试
- 百度智能云SDK或阿里云SDK通用教程
- jzoj5983. 【北大2019冬令营模拟2019.1.1】多边形 (组合数学)
- 阿里云服务器能做什么呢?