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

【洛谷】P10417 [蓝桥杯 2023 国 A] 第 K 小的和 的题解

【洛谷】P10417 [蓝桥杯 2023 国 A] 第 K 小的和 的题解

题目传送门

题解

CSP-S1 补全程序,致敬全 A 的答案,和神奇的预言家。

写一下这篇的题解说不定能加 CSP 2024 的 RP

首先看到 k k k 这么大的一个常数,就想到了二分。然后写一个判断的函数:枚举 A A A 序列里面的数,然后再找 B B B 序列能和 A A A 序列里选出来的数加起来之和小于等于 t t t 即可。

但是,这样的话可能会超时,所以,我们把 B B B 序列的循环改成二分,注意要二分必须在有序的情况下,所以提前排序。时间复杂度 O ( n log ⁡ m ) O(n \log m) O(nlogm)

不开 long long 见祖宗!!!

代码

#include <bits/stdc++.h>
#define lowbit(x) x & (-x)
#define endl "\n"
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
#define int long long
namespace fastIO {
	inline int read() {
		register int x = 0, f = 1;
		register char c = getchar();
		while (c < '0' || c > '9') {
			if(c == '-') f = -1;
			c = getchar();
		}
		while (c >= '0' && c <= '9') x = x * 10 + c - '0', c = getchar();
		return x * f;
	}
	inline void write(int x) {
		if(x < 0) putchar('-'), x = -x;
		if(x > 9) write(x / 10);
		putchar(x % 10 + '0');
		return;
	}
}
using namespace fastIO;
int n, m, k, a[100005], b[100005]; 
bool check (int x) {
	int res = 0;
	for (int i = 1; i <= n; i++) {
		res += upper_bound (b + 1, b + m + 1, x - a[i]) - b - 1;
	}
	return res >= k;
}
signed main() {
	//freopen(".in","r",stdin);
	//freopen(".out","w",stdout);
	n = read(), m = read(), k = read();
	for(int i = 1; i <= n; i ++) {
		a[i] = read();
	}
	for(int i = 1; i <= m; i ++) {
		b[i] = read();
	}
	sort(b + 1, b + m + 1);
	int l = 0, r = INT_MAX;
	while (l < r) {
		int mid = (l + r) >> 1;
		if (check (mid)) {
			r = mid;
		}
		else l = mid + 1;
	}
	write(l);
	return 0;
}

http://www.kler.cn/a/319994.html

相关文章:

  • 【JavaScript】基础内容,HTML如何引用JavaScript, JS 常用的数据类型
  • 梁山派入门指南4——定时器使用详解,包括定时器中断、PWM产生、输入捕获测量频率
  • FFmpeg硬件解码
  • “飞的”点外卖,科技新潮流来袭
  • ROS1学习记录
  • 中间件以及主流中间件产品:IBM MQSeries和BEA Tuxedo介绍
  • 免费制作证件照的小程序源码
  • 机器学习EDA探查工具Pandas profiling
  • nvm以及npm源配置
  • 注意力机制篇 | YOLOv8改进之在C2f模块引入EffectiveSE注意力模块 | 基于SE注意力
  • 聚观早报 | 豆包视频生成大模型发布;华为纯血鸿蒙将开启公测
  • 基于SpringBoot+Vue的考研百科网站系统
  • QT C++ 自学积累 『非技术文』
  • 数字IC设计\FPGA 职位经典笔试面试整理--基础篇2
  • TCP/IP 协议栈
  • 第五届计算机科学与管理科技国际学术会议(ICCSMT 2024)
  • 计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-09-25
  • 【Hadoop】【vim编辑器】【~/.bashrc 文件】如何编辑
  • 计算机网络复习大纲
  • 二叉树的基本概念(下)
  • 技术成神之路:设计模式(十五)中介者模式
  • VulnHub-Bilu_b0x靶机笔记
  • 大数据新视界 --大数据大厂之HBase 在大数据存储中的应用与表结构设计
  • K8S精进之路-控制器StatefulSet有状态控制 -(2)
  • qmt量化交易策略小白学习笔记第67期【qmt编程之获取ETF申赎清单】
  • 封装一个vue3的文件上传组件(拖拽或点击选择文件)