二分法

二分查找

二分查找算法是一种在有序数组中查找特定元素的搜索算法。查找过程从数组的中间元素开始,如果中间元素正好是目标值,则查找过程结束;如果目标值大于或小于中间元素,则在数组大于或小于中间元素的那一半中查找,而不是整个数组。以下是一个二分查找的Java实现: java ```java public class ......

Empty Graph (贪心/二分答案(操作是单调的))

思路 : 首先发现 性质 : 2个点的距离 就是 min(最小值ai X2, 2个点直接的距离) 二分答案, 什么是 单调的? 操作次数的影响是单调的 于是看 这个 答案, 需要几次操作即可. 直接枚举相邻2个点的距离为 最大值, 看看要修改多少次 或者贪心的直接 修改 k-1 小的值, 最后一个看 ......
答案 Empty Graph

二分法demo

# 1.python实现 ```python from math import floor arr = [1, 2, 3, 4, 5, 6, 8, 9, 10, 11] left = 0 right = len(arr)-1 res = 7 while (left res): right = mid ......
二分法 demo

Java 二分查找

# 思路 问题描述:在采用顺序存储结构的有序数组中,查找目标元素,如果目标元素存在,返回对应的数组下标。 假设查找的有序数组为升序,二分查找采用以下的思路进行解决: 1. 将数组中间位置的元素与目标元素比较,如果二者相等,则查找成功;否则,从中间位置将数组分为前、后两个数组; 2. 如果中间位置的元 ......
Java

二分法及其变体问题

## 描述 给定一个 n 个元素有序的(升序)整型数组 `nums` 和一个目标值 `target` ,写一个函数搜索 `nums` 中的 `target`,如果目标值存在返回下标,否则返回 -1。 示例 1: > 输入: `nums` = [-1,0,3,5,9,12], `target` = 9 ......
二分法 变体 问题

「突刺贯穿第二分块」P4117 [Ynoi2018] 五彩斑斓的世界

很帅气! 分块在线转离线,考虑每个块对于询问的贡献。 维护块的 max 和 tag 分别代表最大值和减了多少。 先考虑整块, $max #define rep(i, l, r) for (int i = l; i = l; i --) /*\yhx12243/ 鱼大保佑*/ /*「突刺贯穿第二分块」 ......
五彩 世界 P4117 4117 2018

二分查找

# 二分查找 ## 标准模板 LeetCode 704 ```java class Solution { public int search(int[] nums, int target) { int left = 0; int right = nums.length - 1; while (lef ......

【学习笔记】二分图基础

**二分图与网络流基础(网络流待学)** 查看目录 [TOC] ## 前置知识: * tarjan * 强连通分量:有向图中几个点可以相互到达,就称这几个点是强连通分量。 * 点双连通分量: 删掉一个点后子图仍为强连通分量。 * 边双连通分量:删掉一条边子图仍为强连通分量。 * 奇环:指点的数量为奇 ......
基础 笔记

Leetcode刷题笔记——二分法

二分法是搜索算法中极其典型的方法,其要求输入序列有序并可随机访问。算法思想为 输入:有序数组nums,目的数值target 要求输出:如果target存在在数组中,则输出其index,否则输出-1 1. 将原数组通过[left,right]两个索引划分范围,初值left=0,right=数组的最后一 ......
二分法 Leetcode 笔记

二分图算法及模板

## 二分图算法及模板 ### 1. 二分图算法要解决的问题 ![img](https://img2023.cnblogs.com/blog/2206600/202308/2206600-20230809155400480-771138061.png) ``` 二分图算法要解决的问题有两个: 1. ......
算法 模板

二分法及模板

## 二分法及模板 ### 1. 种类介绍 ``` 二分法按照适用的类型不同,可以分为:整数二分和浮点数二分。不同的类型,模板也各不相同。下面会分情况进行讨论。 ``` ### 2. 二分法的本质 ``` 二分法的本质并不在于单调性。如果某个问题具有单调性的性质,那么这个问题一定可以用二分法来解决。 ......
二分法 模板

洛谷P3679 [CERC2016] 二分毯 Bipartite Blanket

考虑霍尔定理和广义霍尔定理: > 霍尔定理:对于一个左部图为 $X$、右部图大小为 $Y$ 的二分图(钦定 $|X|\leq |Y|$),存在边数等于 $|X|$ 的匹配的充要条件是:对于左部图的任何一个点集,右部图中和它相邻的点集大小都大于等于它(相邻的点集指的是所有点出边的并集)。 * 证明:必 ......
Bipartite Blanket P3679 3679 2016

二分查找(两种模板)/高精度 (加 减) 计算模板(2023/8/30)

//二分查找(两种模板) #include<iostream>using namespace std;#define N 100001int a[N];int main(){ int n, m; cin >> n >> m; for (int i = 0; i < n; i++) scanf("%d ......
模板 高精 高精度 2023 30

WQS二分学习笔记

# WQS 二分学习笔记 感谢 [小跳蛙 的博客](https://www.luogu.com.cn/blog/daniu/wqs-er-fen),让我真正理解了WQS二分。 ## 是啥 有的时候我们会遇到一些有数量限制的题目,比如从 $n$ 个物品中选 $m$ 个使总和最大(虽然排个序就完了,甚至 ......
笔记 WQS

二分图

二分图有关的都放在这里。 A:图G是二分图 B:图G中不存在奇数环 C:图G可以进行染色 注:染色法:对于每一条边 $(u, v)$,u和v应染成不同的颜色(放入两个点集),遍历每一条边看下是否有矛盾即可(具体来说,从1个点出发dfs,如果两个点中有一个未染色,就染成符合条件的颜色,否则检查是否为不 ......

[LeetCode 11]盛最多水的容器 二分

emmm看到这题第一反应是二分_(:з」∠)_ 首先可以观察到,假设我们目前敲定了2块板l和r,那么在l和r之间,低于l和r的板子都是无效的(这个应该显而易见)。 基于这个性质对无效板进行消除,最后会得到一个山峰形(先单调不降,后单调不升) 现在考虑对山峰形如何求解。 考虑枚举每个有效板作为边界,寻 ......
容器 LeetCode 11

hdu: Air Raid(二分图最小路径覆盖)

Problem Description Consider a town where all the streets are one-way and each street leads from one intersection to another. It is also known that st ......
路径 Raid hdu Air

hdu:Machine Schedule(二分图匹配)

Problem Description As we all know, machine scheduling is a very classical problem in computer science and has been studied for a very long history. S ......
Schedule Machine hdu

数组二分查找:35. 搜索插入位置、34. 在排序数组中查找元素的第一个和最后一个位置

35. 搜索插入位置 1 class Solution: 2 def searchInsert(self, nums: List[int], target: int) -> int: 3 left, right = 0, len(nums)-1 4 5 while left <= right: #左 ......
数组 位置 元素 35 34

二分算法

1. 将两个集合合并 2. 询问两个元素是否在一个集合当中 基本原理:每个集合用一棵树表示,树根的编号就是整个集合的编号。每个节点储存它的父节点,p[x]表示x的父节点 判断树根(属于那个集合)`if (p[x] == x)` 求x的集合编号:`while(p[x] != x) x = p[x];` ......
算法

P5787 二分图 /【模板】线段树分治

[传送门](https://www.luogu.com.cn/problem/P5787) 分析: $1$、**并查集判断二分图:** 定义$2n$个点,染成黑白两色,代表两个不同的集合,$a_1$与$a_{1+n}$为不同的颜色,以此类推,对于$a_i$和$a_j$的连边,判断$a_i$和$a_j ......
线段 模板 P5787 5787

P2824 排序(二分答案加线段树)

[传送门](https://www.luogu.com.cn/problem/P2824) 很巧妙的一个题 直接排序肯定会$T$飞 我们发现问题只有一个:第$q$个位置上的数字 不难想到从这里入手,二分答案,考虑第$q$个位置上的数字是什么,不妨设他为$x$ 然后把大于等于$x$的数变成$1$,小于 ......
线段 答案 P2824 2824

【算法-二分查找】实现过程、C++代码示例以及实际应用

### 二分查找简介: 也称为折半查找,是一个在已排序数组中查找特定元素的搜索算法。它的工作原理是将`有序数组`分成两半,然后检查目标值是在左半部分还是右半部分,然后在所选择的那部分中继续查找。这一过程将不断地重复,直到找到目标值或确定目标值不在数组中。 ### 实现过程: ```bash 1.初始 ......
示例 算法 实际 过程 代码

算法 -- 二分查找

## [力扣题目链接](https://leetcode.cn/problems/binary-search/) 给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。 示例 1: ` ......
算法

代码随想录第一天|704.二分查找、27.移除元素

### 二分查找 对数组的要求有两点: 有序 无重复元素,若有重复元素则返回的元素下标不唯一 边界条件是 `while(left 点击查看代码 ``` class Solution { public: int search(vector& nums, int target) { int length ......
随想录 随想 元素 代码 704

6308: 和为给定数 二分

描述 给出若干个整数,询问其中是否有一对数的和等于给定的数。 输入 第一行是整数n(0 < n ≤ 100,000),表示有n个整数。 第二行是n个整数。整数的范围是在0到108之间。 第三行是一个整数m(0≤m≤230),表示需要得到的和。 输出 若存在和为m的数对,输出两个整数,小的在前,大的在 ......
6308

二分查找法(折半查找)

二分查找法是一种在有序数组中查找特定元素的算法。为了理解它的工作原理,我们需要知道数组是有序的,也就是说,数组中的元素按照升序或降序排列。 二分查找法的基本步骤如下: 选择数组的中间元素。 如果中间元素正好是目标值,则搜索结束。 如果目标值大于中间元素,则只需在数组的右半部分中查找。 如果目标值小于 ......

二分图笔记

## 二分图定义 二分图是一张无向图,可以分成 $2$ 个集合 $A$ 和 $B$。在同一个集合中的点没有边相连。 ## 二分图判定 当且仅当图中不存在奇数环时,该图为二分图。 证明:反证法,构造一个奇数环。容易发现无论如何都不可能使相邻 $2$ 点分到 $2$ 个集合。 那么很容易想到一个判定二分 ......
笔记

LeetCode —— 二分查找

33. 搜索旋转排序数组 翻转点在前半部分 nums[mid]<=nums[low] 而后半部分是单调递增的,比较好判断。可以判断 nums[mid] < target <= nums[high] 去后半部分 else 去后半部分 翻转点在后半部分 nums[mid]<=nums[low] 而前半部 ......
LeetCode

二分答案专题

##T1 包裹快递 ### 题目描述 一个快递公司要将 $n$ 个包裹分别送到 $n$ 个地方,并分配给邮递员小 K 一个事先设定好的路线,小 K 需要开车按照路线给的地点顺序相继送达,且不能遗漏一个地点。小 K 得到每个地方可以签收的时间段,并且也知道路线中一个地方到下一个地方的距离。若到达某一个 ......
答案 专题