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

蓝桥杯题目:卡牌

该题采用二分查找的方法去解决找到能凑出最多套的牌数。

首先分析,如何判断套数是否符合答案呢,

我们可以通过两个数组来存储已有的牌和可以第i张可以写的牌的数量来存储。

设套数为x,那么一共有三种情况,

1.x>a[i]+b[i]那么肯定是不符合的因为最多可写的和已有的加起来都不够。

2.x-a[i]>m 需要写的大于能写的总卡牌数m

3.x==a[i] 已有的卡牌就足够。

以下是代码实现:

import java.util.*;public class Main {static Scanner scanner=new Scanner(System.in);static int n = scanner.nextInt();static long m=scanner.nextLong();static long [] a=new long [n];static long [] b=new long [n];public static void main (String [] args){for( int i=0;i<n;i++){a[i]=scanner.nextLong();}for( int i=0;i<n;i++){b[i]=scanner.nextLong();}long l=0;long r=n;while(l<r){long mid =(l+r+1)/2;if(check(mid)){l=mid;}else {r=mid-1;}}System.out.println(l);}static boolean check (long mid) {for(int i=0;i<n;i++){if(a[i]>=mid){continue;}else if(b[i]+a[i]<mid||mid-a[i]>m){return false;}m-=mid-a[i];}return true;}}

相关文章:

  • 无意间发现的宝藏项目:开源世界中的演示项目精选合集
  • AutoSAR从概念到实践系列之MCAL篇(二)——Mcu模块配置及代码详解(上)
  • 【AI训练环境搭建】在Windows11上搭建WSL2+Ubuntu22.04+Tensorflow+GPU机器学习训练环境
  • skywalking agent 关联docker镜像
  • 软考高级系统架构设计师-第16章 数学与经济管理
  • 【网络篇】从零写UDP客户端/服务器:回显程序源码解析
  • 【nginx】服务的信号控制
  • 精益数据分析(9/126):如何筛选创业路上的关键数据指标
  • TensorFlow介绍
  • Oracle EBS COGS Recognition重复生成(一借一贷)
  • 字节头条golang二面
  • 数字化时代下的工业物联网智能体开发平台策略
  • Viper配置管理笔记
  • 网络原理 - 应用层, 传输层(UDP 和 TCP) 进阶, 网络层, 数据链路层 [Java EE]
  • Java EE(20)——线程安全——ThreadLocal
  • Python多进程同步全解析:从竞争条件到锁、信号量的实战应用
  • 第十六节:高频开放题-React与Vue设计哲学差异
  • 闭包函数的应用与理解
  • iOS 应用性能测试工具对比:Xcode Instruments、克魔助手与性能狗
  • FileZilla“服务器发回了不可路由的地址,使用服务器地址代替
  • 广西柳州23年的蝶变:从“酸雨之城”到“文明之城”
  • 明查|美军“杜鲁门”号航空母舰遭胡塞武装打击已退役?
  • 刘国梁:奥运会乒乓球项目增至六金,国乒机遇与挑战并存
  • 福特预期6月美国市场涨价,机构称加税让每辆汽车成本至少增加数千美元
  • 财政部:一季度证券交易印花税411亿元,同比增长60.6%
  • 北京:义务教育阶段入学将积极为多孩家庭长幼随学创造条件