【蓝桥杯集训3】二分专题(3 / 5)
目录
二分模板
1460. 我在哪? - 二分答案 + 哈希表
1221. 四平方和 - 哈希表 / 二分
1、哈希表
2、二分 + 自定义排序
1227. 分巧克力 -
113. 特殊排序 -
二分模板
- l + r >> 1 —— 先 r = mid 后 l = mid+1 —— 寻找左边界 —— 找大于某个数的最小值
- l+r+1>>1 —— 先 l = mid 后 r = mid-1 —— 寻找右边界 —— 找小于某个数的最大值
活动 - AcWing
import java.util.*;class Main
{public static void main(String[] args){Scanner sc=new Scanner(System.in);int n=sc.nextInt(),t=sc.nextInt();int[] a=new int[n];for(int i=0;i<n;i++) a[i]=sc.nextInt();while(t-->0){int x=sc.nextInt();int l=0,r=n-1;while(l<r){int mid=l+r>>1;if(a[mid]>=x) r=mid;else l=mid+1;}if(a[r]!=x) {System.out.println(-1+" "+-1);continue;}System.out.print(r+" ");l=0;r=n-1;while(l<r){int mid=l+r+1>>1;if(a[mid]<=x) l=mid;else r=mid-1;}System.out.println(r);}}
}
1460. 我在哪? - 二分答案 + 哈希表
1460. 我在哪? - AcWing题库
题目:
约翰想要知道最小的 K 的值,使得他查看任意连续 K 个邮箱序列,他都可以唯一确定这一序列在道路上的位置.
最小的K值,意思是要找到最小长度为K的子串并且只出现过一次
思路:
二分答案K值
用哈希表存前面出现过的子串,如果后面长度为k的子串在哈希表存在过,说明后面的子串在前面出现过,说明该k值小,答案应该增大
最后二分出满足要求的最小k值
import java.util.*;class Main
{static String s="";public static boolean ck(int len,String s){int n=s.length();Set<String> st=new HashSet<>();for(int i=0;i+len-1<n;i++){String t=s.substring(i,i+len);if(st.contains(t)) return false; //如果后面存在前面出现过的st.add(t);}return true;}public static void main(String[] args){Scanner sc=new Scanner(System.in);int n=sc.nextInt();String s=sc.next();int l=1,r=n;while(l<r){int mid=l+r>>1;if(ck(mid,s)) r=mid;else l=mid+1;}System.out.print(l);}
}
1221. 四平方和 - 哈希表 / 二分
活动 - AcWing
题目:
思路:
a,b,c,d的枚举范围为
,四重循环会tle
所以我们只能枚举两个数
因此我们需要用空间换时间
先将存起来降低时间复杂度
1、哈希表
因为要按0≤a≤b≤c≤d顺序,存第一个表示法
所以对于cd组合,d从c开始枚举,将
对应的c和d存起来
因为cd是从小到大枚举的,所以如果后面再次出现相同的sum值,就跳过,只存第一次的
对于ab组合,b从a开始枚举,
确定后,一定存在对应的
因为ab是从小到大枚举的,所以当出现对应的sum值时,直接输出,return
import java.util.*;class Main
{public static void main(String[] args){Scanner sc=new Scanner(System.in);int n=sc.nextInt();Map<Integer,int[]> mp=new HashMap<>();for(int c=0;c*c<=n;c++)for(int d=c;d*d+c*c<=n;d++){int t=d*d+c*c;if(!mp.containsKey(t)) mp.put(t,new int[] {c,d});}for(int a=0;a*a<=n;a++)for(int b=a;b*b+a*a<=n;b++){int x=n-a*a-b*b;int[] tp=mp.get(x);if(mp.containsKey(x)){System.out.print(a+" "+b+" "+tp[0]+" "+tp[1]);return;}}}
}
2、二分 + 自定义排序
对cd组合结果进行排序
在枚举ab组合时,二分满足条件的cd组合
import java.util.*;class Main
{public static void main(String[] args){Scanner sc=new Scanner(System.in);int n=sc.nextInt();List<int[]> list=new ArrayList<>();for(int c=0;c*c<=n;c++)for(int d=c;d*d+c*c<=n;d++){int t=d*d+c*c;list.add(new int[]{t,c,d});}list.sort(new Comparator<int[]>(){public int compare(int[] o1,int[] o2){if(o1[0]!=o2[0]) return o1[0]-o2[0]; //从大到小if(o1[1]!=o2[1]) return o1[1]-o2[1];return o1[2]-o2[2];}}); for(int a=0;a*a<=n;a++)for(int b=a;b*b+a*a<=n;b++){int x=n-a*a-b*b;int l=0,r=list.size()-1;while(l<r){int mid=l+r>>1;if(list.get(mid)[0]>=x) r=mid;else l=mid+1;}if(list.get(l)[0]==x){int c=list.get(l)[1];int d=list.get(l)[2];System.out.print(a+" "+b+" "+c+" "+d);return;}}}
}
1227. 分巧克力 -
活动 - AcWing
题目:
思路:
113. 特殊排序 -
活动 - AcWing
题目:
思路:
相关文章:
【蓝桥杯集训3】二分专题(3 / 5)
目录 二分模板 1460. 我在哪? - 二分答案 哈希表 1221. 四平方和 - 哈希表 / 二分 1、哈希表 2、二分 自定义排序 1227. 分巧克力 - 113. 特殊排序 - 二分模板 l r >> 1 —— 先 r mid 后 l mid1 —— 寻找左边界 —— 找大于某个数的最小值lr…...

在成都的哪个培训机构学习Java好呢?
自从小课06年进入成都这个IT培训市场以来,短短十几年,招过很多学员,也见证过很多机构的起起落落。心中有万分的感慨,总结下来有这几点分享给大家,在选择培训机构时能看清本质,找到适合自己靠谱的机构学Java…...

传输层重要协议之UDP协议和TCP协议详解
更多关于UDP协议和TCP协议请移步官网:https://www.rfc-editor.org/standards#ISUDP标准协议文档-RFC 768TCP标准协议文档-RFC 793UDP协议详解UDP协议的特点:无连接、不可靠传输、面向数据报和全双工。UDP协议报文结构:关于端口号:…...

BNB Greenfield 成存储赛道“新贵”,BNB 生态的野心与破局
“从BNB Beacon Chain,到BNB Chain,再到BNB Greenfield ,三位一体的 BNB 生态格局正式形成。 ”在今年的2月1日,币安发布了分布式存储链BNB Greenfield,根据白皮书信息,它的特别之处在于其不仅具备基于SP&a…...

【SQL开发实战技巧】系列(十六):时间类型操作(上):日、月、年、时、分、秒之差及时间间隔计算
系列文章目录 【SQL开发实战技巧】系列(一):关于SQL不得不说的那些事 【SQL开发实战技巧】系列(二):简单单表查询 【SQL开发实战技巧】系列(三):SQL排序的那些事 【SQL开发实战技巧…...

JavaScript知识点总结
JavaScript 一、介绍: 1.JavaScript是一种专门在浏览器编译并执行的编程语言 2.JavaScript处理用户与浏览器之间请求问题 3.JavaScript采用【弱类型编程语言风格】对【面向对象思想】来进行实现的编程语言 二、弱类型编程语言风格 VS 强类型编程语言风格 …...

adb命令记录
一、获取系统版本 adb shell getprop ro.build.version.release 二、手机文件拉取到电脑 adb命令 : adb pull source_path dest_path 示例: adb pull /sdcard/Movies/app_layout.txt ./ 从手机拉取app_layout.txt文件到当前路径。 三、电脑文件推送…...

9.Docker Swarm
Docker Swarm 基本概念 Swarm是使用SwarmKit构建的 Docker 引擎内置(原生)的集群管理和编排工具。Docker Swarm是 Docker 官方三剑客项目之一,提供 Docker 容器集群服务,是 Docker 官方对容器云生态进行支持的核心方案。 使用它…...

基于tensorflow keras DNN神经网络训练预测豆瓣中文影评差评好评 附完整代码 +数据
首先看视频:https://www.bilibili.com/video/BV1r84y1p7q3/?spm_id_from=333.999.0.0 附完整的代码数据 完整的代码项目: 主要代码: # 导入包 import csv import jieba import tensorflow as tf from tensorflow...

商城系统必备营销工具(五)——积分商城
做商城,流量必不可少,日活跃度也很重要。现在各大APP、网站、小程序和微商城,基本都在为了巩固流量做积分商城,虽然已经随处可见,但很多企业商家却并没有将积分商城运作起来,积分商城也没有人浏览兑换商品。…...

SpringBoot08:Shiro
什么是Shiro? 一个Java的安全(权限)框架,可以完成认证、授权、加密、会话管理、Web集成、缓存等 下载地址:Apache Shiro | Simple. Java. Security. 快速启动 先在官网找到入门案例:shiro/samples/quick…...

进击中的 Zebec 生态,Web2 与 Web3 世界的连接器
虽然从意识形态上看,Web2世界与Web3世界存在着不同的逻辑,但我们同样看到,随着加密资产领域的发展,其正在作为优质投资品,被以Paypal、高盛等主流机构重视与接受。当然,除了作为投资者品外,近年…...

SpringCloud保姆级搭建教程五---Redis
首先,这个和微服务没有直接的关系,只是在代码开发当中要使用的一个工具而已,为了提高这个系统的性能,加快查询效率等方面而使用它1、首先,要先安装redis到电脑上,这里依然是在windows上演示,之后…...

存储类别、链接与内存管理(一)
1、一些必要的基础概念 (1)对象 从硬件的角度,被存储的每个值都被占用了一定的物理内存,C语言把这样的一块内存称为对象对象可以存储一个或多个值一个对象可能并未存储实际的值,也可能存储一个或多个值,但…...

JS设计模式
文章目录1 什么是设计模式?2 发布-订阅模式2.1 DOM事件2.2 基于Broadcast Channel实现跨页面通信2.3 基于localStorage实现跨页面通信2.4 使用 Vue 的 EventBus 进行跨组件通信2.4 使用 React 的 EventEmitter 进行跨组件通信3 装饰器模式3.1 React 高阶组件 HOC3.2…...

四、常用样式讲解二
文章目录一、常用样式讲解二1.1 元素隐藏1.2 二级菜单1.3 相对定位和绝对定位1.4 定位的特殊情况1.5 表格1.6 表格的css属性1.7 表格中新增的标签一、常用样式讲解二 1.1 元素隐藏 如何让一个元素隐藏 1、不定义颜色 占用空间 2、display: none 不占用空间 3、visibility: hi…...

KDHX-8700无线高压核相相序表
一、产品简介 KDHX-8700无线高压核相相序表(以下简称“仪器”)用于测定三相线相序、检测环网或双电源电力网闭环点断路器两侧电源是否同相。在闭环两电源之前一定要进行核相操作,否则可能发生短路。仪器适用于380V~35kV交流输电线…...

【C++提高笔记】泛型编程与STL技术
文章目录模板的概念函数模板函数模板语法函数模板注意事项函数模板案例普通函数与函数模板的调用规则模板的局限性类模板类模板语法类模板与函数模板区别类模板中成员函数创建时机类模板对象做函数参数类模板与继承类模板成员函数类外实现类模板分文件编写类模板与友元类模板案…...

实用机器学习-学习笔记
文章目录9.1模型调参9.1.1思考与总结9.1.2 基线baseline9.1.3SGD ADAM9.1.4 训练代价9.1.5 AUTOML9.1.6 要多次调参管理9.1.7复现实验的困难9.1模型调参 9.1.1思考与总结 1了解了baseline和调参基本原则 2了解了adams和sgd的优劣 3了解了训练树和神经网络的基本代价 4了解了a…...

2023-02-15 学习记录--React-邂逅Redux(二)
React-邂逅Redux(二) “天道酬勤,与君共勉”——承接React-邂逅Redux(一),让我们一起继续探索Redux的奥秘吧~☺️ 一、前言 React-邂逅Redux(一)让我们对Redux有了初步认识ÿ…...

Framework——【MessageQueue】消息队列
定义 队列是 Apache RocketMQ 中消息存储和传输的实际容器,也是 Apache RocketMQ 消息的最小存储单元。 Apache RocketMQ 的所有主题都是由多个队列组成,以此实现队列数量的水平拆分和队列内部的流式存储。 队列的主要作用如下: 存储顺序性…...

SpringBoot依赖原理分析及配置文件
💟💟前言 友友们大家好,我是你们的小王同学😗😗 今天给大家打来的是 SpringBoot依赖原理分析及配置文件 希望能给大家带来有用的知识 觉得小王写的不错的话麻烦动动小手 点赞👍 收藏⭐ 评论📄…...

智慧机场,或将成为航空领域数字孪生技术得完美应用
在《智慧民航建设路线图》文件中,民航局明确指出,智慧机场是实现智慧民航的四个核心抓手之一。这一战略性举措旨在推进数字化技术与航空产业的深度融合,为旅客提供更加智能化、便捷化、安全化的出行服务,进一步提升我国民航发展的…...

SQL64 对顾客ID和日期排序
描述有Orders表cust_idorder_numorder_dateandyaaaa2021-01-01 00:00:00andybbbb2021-01-01 12:00:00bobcccc2021-01-10 12:00:00dickdddd2021-01-11 00:00:00【问题】编写 SQL 语句,从 Orders 表中检索顾客 ID(cust_id)和订单号(…...

MybatisPlus使用聚合函数
前言 今天遇到了一个求总数返回的情况,我一想这不是用sum就完事了吗。 但是仔细想想,MybatisPlus好像没有直接使用sum的api。 虽然没有直接提供,但是办法还是有的,下面就分享下如何实现的: 首先如果使用sql是这么写…...

工程管理系统源码企业工程管理系统简介
一、立项管理 1、招标立项申请 功能点:招标类项目立项申请入口,用户可以保存为草稿,提交。 2、非招标立项申请 功能点:非招标立项申请入口、用户可以保存为草稿、提交。 3、采购立项列表 功能点:对草稿进行编辑&#x…...

《计算机视觉和图像处理简介 - 中英双语版》:使用 OpenCV对图像进行空间滤波
文章大纲 Linear Filtering 线性滤波器Filtering Noise 过滤噪声Gaussian Blur 高斯滤波Image Sharpening 图像锐化Edges 边缘滤波Median 中值滤波Threshold Function Parameters 阈值函数参数References本文大概需要40分钟 Spatial Operations in Image Processing 图像处理中…...

FreeRTOS软件定时器 | FreeRTOS十三
目录 说明: 一、定时器简介 1.1、定时器 1.2、软件定时器 1.3、硬件定时器 1.4、FreeRTOS软件定时器 1.5、软件定时器服务任务作用 1.6、软件定时器的命令队列 1.7、软件定时器相关配置 1.8、单次定时器和周期定时器 1.9、软件定时器结构体 二、软件定时…...

电脑文件被误删?360文件恢复工具,免费的文件恢复软件
电脑里面保存着各种文件,因为误操作我们把还需要用的文件给删除了。很多人都想要使用不收费的文件恢复软件来进行恢复操作,但是又不清楚有哪些文件可以帮到我们。接下来就给大家介绍,一款真正免费的数据 恢复app,一起来看看&#…...

pg_cron优化案例--terminate pg_cron launcher可自动拉起
场景 在PostgreSQL中我们可以使用pg_cron来实现数据库定时任务 我有一个select 1的定时任务,每分钟触发一次 testdb# select * from cron.job ;jobid | schedule | command | nodename | nodeport | database | username | active | jobname -------…...