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

【最大通过数——二分】

题目

代码

#include<bits/stdc++.h>
using namespace std;
using ll = long long;const int N = 2e5+10;int n, m, k;
ll a[N], b[N];bool check(int mid)
{for(int i = 0; i <= mid; i++){if(i > n) break;if(mid-i > m) continue;if(a[i] + b[mid-i] <= k) return true;}return false;
}
int main()
{scanf("%d%d%d", &n, &m, &k);for(int i = 1; i <= n; i++){scanf("%d", a+i);a[i] += a[i-1];}for(int i = 1; i <= m; i++){scanf("%d", b+i);b[i] += b[i-1];}int l = 0, r = 1e9;while(l < r){int mid = l + r + 1 >> 1;if(check(mid)) l = mid;else r = mid - 1;}printf("%d", l);
}
#include <bits/stdc++.h>
using namespace std;
using ll = long long;const int N = 2e5 + 10;int n, m, k;
ll a[N], b[N];
int idx1, idx2;
ll ans;struct node
{ll val, cnt;bool operator<(const node &t) const{return val < t.val;}
} cnta[N], cntb[N];
int main()
{scanf("%d%d%d", &n, &m, &k);for (int i = 1; i <= n; i++){scanf("%d", a + i);a[i] += a[i - 1];if (a[i] <= 1e9)cnta[++idx1] = {a[i], i};}for (int i = 1; i <= m; i++){scanf("%d", b + i);b[i] += b[i - 1];if (b[i] <= 1e9)cntb[++idx2] = {b[i], i};}for (int i = 1; i <= idx1; i++){if (cnta[i].val > k)break;int left = k - cnta[i].val;int idx = upper_bound(cntb + 1, cntb + idx2 + 1, (node){left, 0}) - cntb - 1;ans = max(ans, cnta[i].cnt + cntb[idx].cnt);}int idx = upper_bound(cntb + 1, cntb + idx2 + 1, (node){k, 0}) - cntb - 1;ans = max(ans, cntb[idx].cnt);printf("%lld", ans);return 0;
}


http://www.mrgr.cn/news/92438.html

相关文章:

  • 机试刷题_NC17 最长回文子串【python】
  • 细说STM32F407单片机RS485收发通信实例及调试方法
  • 模拟算法.
  • Mellanox的LAG全称是什么?网卡的创建机制如何?(Link Aggregation Group 链路聚合组)
  • 在nodejs中使用ElasticSearch(三)通过ES语义检索,实现RAG
  • 本地部署阿里的万象2.1文生视频(Wan2.1-T2V-1.3B)模型
  • 仿真环境下实现场景切换、定位物体和导航行走
  • 指标异动拆解:数据分析师的实战指南
  • Windows 图形显示驱动开发-WDDM 3.2-自动显示切换(七)
  • 如何搭建起成熟的团队知识文档管理系统
  • 15.5 基于 RetrievalQA 的销售话术增强系统实战:构建智能销售大脑
  • AI知识架构之神经网络
  • 销售成交九步思维魔方
  • C语言文件操作深度解析:从基础到实践
  • 文件系统
  • 项目过程管理思维导图
  • 一文了解Java中的虚拟线程新特性
  • 基于大模型的肺纤维化预测及临床方案研究报告
  • 网页制作09-html,css,javascript初认识のhtml如何使用表单
  • 剑指 Offer II 031. 最近最少使用缓存