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

企业网站经典案例网上营销

企业网站经典案例,网上营销,网站应如何设计,谷歌chrome浏览器下载原题目链接 🔧 冶炼金属转换率推测题解 📜 原题描述 小蓝有一个神奇的炉子用于将普通金属 O O O 冶炼成为一种特殊金属 X X X。这个炉子有一个属性叫转换率 V V V,是一个正整数,表示每 V V V 个普通金属 O O O 可以冶炼出 …

原题目链接


🔧 冶炼金属转换率推测题解

📜 原题描述

小蓝有一个神奇的炉子用于将普通金属 O O O 冶炼成为一种特殊金属 X X X。这个炉子有一个属性叫转换率 V V V,是一个正整数,表示每 V V V 个普通金属 O O O 可以冶炼出 1 个特殊金属 X X X

N N N 条冶炼记录,每条记录包含两个整数 A A A B B B,表示本次使用了 A A A 个普通金属 O O O,冶炼出了 B B B 个特殊金属 X X X

每次冶炼是独立的,剩余金属不会带到下一次。

现在,请你根据所有冶炼记录推测转换率 V V V最小可能值最大可能值

题目保证有解。


🧾 输入格式

第一行:整数 N(1 ≤ N ≤ 10^4)接下来的 N 行:每行两个整数 A, B(1 ≤ B ≤ A ≤ 10^9)

📤 输出格式

输出两个整数,表示可能的最小转换率 V V V 和最大转换率 V V V,用空格隔开。


🧪 输入样例

3
75 3
53 2
59 2

✅ 输出样例

20 25

💡 思路解析(基于你的代码)

本题要求找出使得每条记录都满足 ⌊ A i V ⌋ = B i \left\lfloor \frac{A_i}{V} \right\rfloor = B_i VAi=Bi 的所有 V V V,并输出其中的最小值和最大值。

你使用了两次二分查找

  • 第一次查最小合法 V V V(尽可能小);
  • 第二次查最大合法 V V V(尽可能大)。

🔁 判定逻辑:

  • 对于每个中间值 m i d mid mid,用 arr[i][0] / midarr[i][1] 做比较:
    • 如果大于 B i B_i Bi,说明 m i d mid mid 太小了,要增大;
    • 如果小于 B i B_i Bi,说明 m i d mid mid 太大了,要减小;
    • 否则说明该 m i d mid mid 是合法值。

📐 算法解析

  1. 设定二分范围 [ 1 , max ⁡ A i ] [1, \max A_i] [1,maxAi]
  2. 第一次二分找出满足条件的最小合法 V V V
  3. 第二次二分找出满足条件的最大合法 V V V
  4. 输出这两个值。

时间复杂度:

  • 每次二分最多 log ⁡ ( 10 9 ) \log(10^9) log(109) 次;
  • 每次判断遍历 N N N 条记录;
  • 总体复杂度约为 O ( N log ⁡ A m a x ) O(N \log A_{max}) O(NlogAmax)

💻 完整代码(原封不动)

#include<bits/stdc++.h>using namespace std;int main() {int N;cin >> N;vector<vector<int>> arr(N, vector<int>(2));int l = 1, r = 1, res1 = INT_MAX, res2 = INT_MIN, r_l, r_r;for (int i = 0; i < N; i++) cin >> arr[i][0] >> arr[i][1], r = max(r, arr[i][0]);r_l = l, r_r = r;while(r_l <= r_r) {int mid = (r_l + r_r) / 2;int code = 0;for (int i = 0; i < N && code == 0; i++) {if (arr[i][0] / mid > arr[i][1]) code = 1;if (arr[i][0] / mid < arr[i][1]) code = 2;}if (code == 0) res1 = min(res1, mid);if (code == 1) r_l = mid + 1;else r_r = mid - 1;}r_l = l, r_r = r;while(r_l <= r_r) {int mid = (r_l + r_r) / 2;int code = 0;for (int i = 0; i < N && code == 0; i++) {if (arr[i][0] / mid > arr[i][1]) code = 1;if (arr[i][0] / mid < arr[i][1]) code = 2;}if (code == 0) res2 = max(res1, mid);if (code == 2) r_r = mid - 1;else r_l = mid + 1;}cout << res1 << " " << res2;return 0;
}//by wqs

✅ 总结

这段代码巧妙地用了二分查找解决最大/最小合法值问题。

  • 第一次二分是找下界(合法的最小值);
  • 第二次二分是找上界(合法的最大值);
  • 每次判断只要符合全部记录,就尝试更新答案。

这种思路比直接取不等式交集更通用,也适用于更复杂的分段函数类问题。


http://www.dtcms.com/wzjs/792988.html

相关文章:

  • 怎么成立个人网站建设网站的获客渠道
  • ps怎么在dw上做网站企业网站提交
  • 红河做网站如何自己创建一个小程序
  • 网站建设资金空间登录
  • 上海手机网站案例网站建设咨询服务合同
  • 手机网站怎么dw做制作一个静态网站源码
  • 网站建设需要什么硬件和软件有哪些绍兴网站制作软件
  • 绍兴企业免费建站网页设计实训总结结尾
  • 海拉尔建设局网站国内精品电影资源
  • 建立网站站建设可以吗网站建设属于哪个类目
  • 500云空间网站百度竞价托管外包
  • 国内优秀企业网站欣赏WordPress腾讯对象存储
  • 做网站需要哪些证书建设银行信用卡进度查询官方网站
  • p2p网站建设多少钱做性的网站有哪些
  • 哪些网站可以做免费外贸软件开发公司属于什么行业
  • 定制软件的平台电脑系统优化软件排行榜
  • 电商的网站开发订单返利功能郑州网站建设seo优化
  • 网站备案 加急买了个域名 如何自己做网站
  • 柯桥建设集团网站青岛专业网站建设哪家好
  • 网站建设公司 关于我们临沧seo
  • 网站页面优化分析帮企业建设网站销售
  • 网站主题说明怎么写文化传媒网站封面
  • 如何做一个网站的seo佛山做外贸网站如何
  • iis 5 新建网站中国做网站的网站
  • 阿里云网站建设步骤网络营销活动策划
  • 北京电商网站建设外包苏州教育网站建设
  • 青州网站建设青州自建站什么意思
  • 济南建站推荐企汇优见效付款邢台专业做wap网站
  • 浙江做网站的公司政务公开网站建设要求
  • 企业网站wap源码国外有没有类似小程序的应用