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

M 有效算法

M 有效算法

在这里插入图片描述
本题考验二分知识,思路是二分k的取值,就按第一组样例来说当我们k取值为1的时候我们遍历数组想让|8-x|<=k1的话x的取值范围是7-9,想让|3-x|<=k2的话x的取值范围是1-5,两者x的区间不重合,说明肯定没有x能同时让|8-x|<=k1和|3-x|<=k2,所以不成立,当k=2的时候我们发现每一组x的区间都有重合的地方,那么此时a数组一定是可以全都变成x的,并且当k>2时毫无疑问绝对都可以符合,k的取值是否达标具有单调性,所以可以用二分来枚举。
题解如下:

#define _CRT_SECURE_NO_WARNINGS
#include<bits/stdc++.h>
#include<unordered_map>
using namespace std;
#define for1 for(int i = 1;i <= n;i++)
#define for0 for(int i = 0;i < n;i++) 
#define forn1 for(int j = 1;j <= n;j++) 
#define forn0 for(int j = 0;j < n;j++) 
#define form1 for (int j = 1; j <= m; j++)
#define form0 for (int j = 0; j < m; j++)
#define IOS ios::sync_with_stdio(0),cin.tie(0),cout.tie(0)
#define arrn int* arr = new int[n+2];arr[0] = 0,arr[n+1]=0
#define carr cin >> arr[i]
#define inf 0x3f3f3f3f
#define INF 0x3f3f3f3f3f3f3f3f
#define endl '\n'
#define mod  1000000007
#define t() int _; cin >> _; while (_--)
int a[300010];
int b[300010];
int n;
bool cheak(int k)
{long long ml = a[1] - 1ll * b[1] * k;long long mr = a[1] + 1ll * b[1] * k;for (int i = 2; i <= n; i++){long long ll = a[i] - 1ll * b[i] * k;long long rr = a[i] + 1ll * b[i] * k;if (ll > ml)ml = ll;if (rr < mr)mr = rr;}if (mr < ml)return false;return true;
}
int main() {IOS;int t;cin >> t;while (t--){cin >> n;for(int i = 1; i <= n; i++)cin >> a[i];for(int i = 1; i <= n; i++)cin >> b[i];int l = 0, r = 1e9;while (l <= r){int mid = (l + r) >> 1;if (cheak(mid))r = mid-1;else l = mid+1;}cout << l << endl;}return 0;
}
http://www.lryc.cn/news/348320.html

相关文章:

  • 知识付费系统制作,托管机构如何提高体验课转化率?要注意什么?
  • 【iOS逆向与安全】网上gw如何自动登录与签到SM2,SM3,SM4算法加解密
  • 《CKA/CKAD应试指南/从docker到kubernetes 完全攻略》学习笔记 第14章 包管理helm v3
  • 蓝桥杯备战.19有奖问答dfs
  • 【JS红宝书学习笔记】第1、2章 初识JS
  • 学习java
  • Redis日常维护流程及技巧:确保稳定性与性能
  • 牛客华为机试题——难度:入门(python实现)
  • 数据结构与算法学习笔记之线性表五---循环链表的表示和实现(C++)
  • 微信小程序生命周期揭秘:从启动到消亡的全过程剖析【附代码】
  • Linux 下载 miniconda
  • 第十五篇:全面防护:构建不容侵犯的数据库安全策略与实战指南
  • 电脑快速搜索文件及文件夹软件——Everything
  • 02-登录页面、动态路由、权限等模块开发
  • 万物生长大会 | 创邻科技再登杭州准独角兽榜单
  • (六)Linux的Shell编程(上)
  • CANopen总线_CANOpen开源协议栈
  • Rust 语言不支持 goto 语句
  • uniapp日期区间选择器
  • k8s job
  • Python---NumPy万字总结【此篇文章内容难度较大,线性代数模块】(3)
  • 【面试经典题】环形链表
  • 【联合索引】最左匹配原则是什么?
  • LeetCode 700.二叉搜索树中的搜索
  • 程序设计实践-课程设计任务布置(麦当劳) (price 200)(不包含文档)
  • leetcode 918.环形子数组的最大和
  • Spring中用到的设计模式有哪些
  • CSS 样式清单整理:文字超出部分显示省略号和设置placeholder的字体样式
  • Docker容器:Docker-Consul 的容器服务更新与发现
  • 容器化Jenkins远程发布java应用(方式二:自定义镜像仓库远程拉取构建)