二分

归档 230502 // 二分图

So why not 二分图? 二分图 ~~二分图总体概念不难~~。主要是其应用广泛,需要注意什么样的题目可以联系到二分图上来。 概念 若图 $G$ 可将点集 $V$ 分成两个互不相交的子集 $X$ 和 $Y$,且每条边连接的两个点都满足一个在 $X$ 中,一个在 $Y$ 中,则称 $G$ 为二分图 ......
230502

二分查找——出现溢出问题

算法描述: 前提:有已排序数组 A(假设已经做好) 定义左边界 L、右边界 R,确定搜索范围,循环执行二分查找(3、4两步) 获取中间索引 M = Floor((L+R) /2) 中间索引的值 A[M] 与待搜索的值 T 进行比较 ① A[M] == T 表示找到,返回中间索引 ② A[M] > T ......
问题

【二分查找】LeetCode 33. 搜索旋转排序数组思路

题目链接 33. 搜索旋转排序数组思路 思路 都在注释里 代码 class Solution { public int search(int[] nums, int target) { int len = nums.length; if(len == 0){ return -1; } int lef ......
数组 LeetCode 思路 33

【二分查找】LeetCode 528. 按权重随机选择

题目链接 528. 按权重随机选择 思路 代码 class Solution { private int[] sum; public Solution(int[] w) { sum = new int[w.length + 1]; for(int i = 1; i < sum.length; i++ ......
权重 LeetCode 528

【二分查找】LeetCode 540. 有序数组中的单一元素

题目链接 540. 有序数组中的单一元素 思路 假如不存在单个的元素,那么在奇数位置上总是成对元素的第一个元素,偶数位置上总是成对元素的第二个元素,但是如果加入了单个元素呢? 我们可以看到在单个元素的左边这个特点没有变化,但是在单个元素的右边,奇数位置上总是成对元素的第二个元素,偶数位置上总是成对元 ......
数组 LeetCode 元素 540

LeetCode 704. 二分查找 题解

##本题考查的就是一个基本的整数二分查找问题 对于整数二分,有单调性一定可以二分,没有单调性的有时候也可以二分。 ##算法思想(分为两种方法): 查找结果是在左边区间的情况 区间被划分为[l,mid]和[mid+1,r] 1、确定分界点,mid=q[(l+r)/2] 2、判断是否满足 是:区间变成[ ......
题解 LeetCode 704

sklearn.metrics.precision_recall_curve—计算不同概率阈值的精确召回对(仅限于二分类任务)

参考:https://scikit-learn.org/stable/modules/generated/sklearn.metrics.precision_recall_curve.html 在分类模型的性能评估指标总结章节中,提到的Precision-Recall 曲线可通过sklearn库中的 ......

二分法

【概述】 1. 什么是二分法? ​ 二分法(Bisection method),即一分为二的的方法。对于在区间[a,b]上连续不断且满足f(a)*f(b)<0的函数y=f(x),通过不断地把函数f(x)的零点所在区间二等分,使区间两个端点逐步逼近零点,进而得到零点的近似值的方法。 ​ 说人话:把答案 ......
二分法

Chemistry Experiment Codeforces Round 247 (Div. 2) 线段树动态开点,二分

第一次写的时候还不会线段树的动态开点,写了一个是线段树但是是$O(N^2)$的写法,现在用动态开点武装了自己,会了正解$O(qlog n^2)$。首先建立一个权值线段树,但这里的权值很大,通过动态开点去建树来节省空间,对于两种操作: 操作1,常见的动态开点的单点修改 操作2,二分答案,然后在线段树上 ......

【dp的二分优化】NO300 最长递增子序列

【dp的二分优化】300. 最长递增子序列 给你一个整数数组 nums ,找到其中最长严格递增子序列的长度。 子序列 是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如,[3,6,2,7] 是数组 [0,3,1,6,2,2,7] 的子序列。 示例 1: 输入:nums ......
序列 300 NO

最短路+二分题目整理

前往奥格瑞玛的道路 题目链接 $\qquad$题目要求最小化最大费用,显然是使用二分答案,二分答案首先应该看限制和目标,此处的限制是血量限制,而目标是费用目标。这种情况我们可以二分费用,然后在图上跑最短路判定血量是否满足。 $\qquad$对于check函数,我们去判定是否存在一条道路使得最高费用不 ......
题目

二分算法

整数二分 二分与单调性的关系: 如果有单调性, 一定可以二分; 可以二分的题目, 不一定非得有单调性 二分的本质: 边界 在区间上定义了某种性质, 该性质在区间右半边满足, 左半边不满足, 使整个区间一分为二 二分可以寻找性质的边界(既可以寻找边界 i , 也可以寻找边界 j ) ① 寻找边界 i ......
算法

数的范围 | 整数二分

AC.789 数的范围 题目描述 给定一个按照升序排列的长度为 $n$ 的整数数组,以及 $q$ 个查询。对于每个查询,返回一个元素 $k$ 的起始位置和终止位置(位置从 $0$ 开始计数)。 输入格式 第一行包含整数 $n$ 和 $q$,表示数组长度和询问个数。第二行包含 n 个整数(均在 $1∼ ......
整数 范围

二分图

$$ 二分图 \begin{cases} \ 染色法 \[4ex] 匈牙利算法 \end{cases} $$ 染色法 //染色法判别二分图模板 int n; //n表示点数 int h[N],e[M],ne[M],idx; //邻接表存储图 int color[N]; //表示每个点的颜色,-1表示 ......

二分查找算法讲解及其C++代码实现

二分查找算法是一种常用的查找算法,也被称为折半查找。它可以在有序的数组或列表中快速查找需要的元素。 算法描述: 首先确定数组的中间位置mid=(left+right)/2; 然后将要查找的值key与中间位置的值进行比较; 如果key等于中间位置的值,则查找成功,返回mid; 如果key小于中间位置的 ......
算法 代码

【二分查找】LeetCode 153. 寻找旋转排序数组中的最小值

题目链接 153. 寻找旋转排序数组中的最小值 思路 首先分析一下旋转数组可能有的状态: 左 < 中 < 右,此时最小值肯定在左边,应当收缩右边界 左 < 中,中 > 右,此时最小值肯定在右半段,应当收缩左边界 左 > 中,中 < 右,此时最小值肯定在左半段,应当收缩右边界 分析这三种状态可以发现, ......
数组 LeetCode 153

整体二分学习笔记

整体二分 引入 对于一堆询问,如果每个单独的询问都可以二分解决的话,时间复杂度为 $O(NM\log N)$,但实际上每次二分都会有一些残留信息被我们扔掉,如果我们将所有询问一起二分,就可以最大时间的减小复杂度。 讲解 经典例题:区间第k大 给定一个序列 a 和一个整数 S,有 2 种操作: 1. ......
整体 笔记

整体二分

二分的进阶版。 先看一个经典问题。 区间第K大 给定一个长度为 $n$ 的序列 $a$ 和 $m$ 个询问. 每次询问给定一个区间 $[l,r]$,输出该区间第 $k$ 大的数。 $n,m \le 30000,a_i \in [0, 2^{31})$ 对于单次询问,二分答案即可。 如何处理多组询问呢 ......
整体

折半查找(二分查找法)

问题描述: N个有序整数数列已放在一维数组中,利用二分查找法查找整数m在数组中的位置。若找到,则输出其下标值;反之,则输出“Not be found! ”。 代码: #include<iostream> #define N 10 int main() { int k,i0=-1, a[N] = { ......

实例解释BCELoss与BCEWithLogitsLoss的关联(二分类问题)

BCEWithLogitsLoss = Sigmoid + BCELoss, nn接口 Function接口 nn.BCELoss( ) F.binary_cross_entropy( ) nn.BCEWithLogitsLoss( ) F.binary_cross_entropy_with_log ......
BCEWithLogitsLoss 实例 BCELoss 问题

二分模板 不会乱的

(29条消息) 不需要考虑mid+1、mid-1的二分查找模板,希望大家都能学会_二分查找如果light mid 不加1_一支彩色铅笔的博客-CSDN博客 非常好的博客,爱来自中国 二分查找为什么总是写错?_哔哩哔哩_bilibili 非常好的视频,爱来自中国 ......
模板

数组的复制、反转、线性查找、二分查找

public class ArrayTest2 { public static void main(String[] args) { String[] arr = new String[]{"JJ","DD","MM","BB","GG","AA"}; //数组的复制(区别于数组变量的赋值:arr1 ......
数组 线性

个人对于二分图匹配的学习记录

二分图 匈牙利算法 下面展示的是dfs实现的写法。 //洛谷P3386 二分图最大匹配 匈牙利算法 #include<bits/stdc++.h> using namespace std; typedef long long ll; const int N = 1505; const int M = ......
个人

有重复值的二分查找

最近在验证SQL join的算法,感觉在内存中实现的话,比较高效的方法就是二分查找了。 但与普通二分查找不同,SQL join的时候左右两边的值可能会有重复,这些重复值都是要找到的。 所以我对二分查找进行了升级优化,不再返还一个索引,而是返回一个索引范围,找不到就返回null 实现了两个版本: 1. ......

1241.二分法求函数零点 | 浮点二分

1241 二分法求函数的零点 题目来源 信息学奥赛一本通 题目描述 $有函数:f(x)=x5−15x4+85x3−225x2+274x−121.已知f(1.5)>0,f(2.4)<0且方程f(x)=0在区间[1.5,2.4] 有且只有一个根,请用二分法求出该根。$ 输出要求 $该方程在区间[1.5, ......
二分法 浮点 函数 1241

二分查找:剑指 Offer 53 - II. 0~n-1中缺失的数字

题目描述: 一个长度为n-1的递增排序数组中的所有数字都是唯一的,并且每个数字都在范围0~n-1之内。 在范围0~n-1内的n个数字中有且只有一个数字不在该数组中,请找出这个数字。 限制: 1 <= 数组长度 <= 10000 解题思路: 复杂度分析: 时间复杂度 O(logN): 二分法为对数级别 ......
缺失 数字 Offer 53 II

二分查找:剑指 Offer 53 - I. 在排序数组中查找数字 I

题目描述: 统计一个数字在排序数组中出现的次数。 提示: •0 <= nums.length <= 105 •-109 <= nums[i] <= 109 •nums 是一个非递减数组 •-109 <= target <= 109 解题思路:排序数组中的搜索问题,首先想到 二分法 解决。 排序数组 ......
数组 数字 Offer 53

二分查找

给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。 示例 1: 输入: nums = [-1,0,3,5,9,12], target = 9输出: 4解释: 9 出现在 nums ......

二分查找:剑指 Offer 11. 旋转数组的最小数字

题目描述: 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 给你一个可能存在 重复 元素值的数组 numbers ,它原来是一个升序排列的数组,并按上述情形进行了一次旋转。请返回旋转数组的最小元素。 例如,数组 [3,4,5,1,2] 为 [1,2,3,4,5] 的一次旋转,该数 ......
数组 数字 Offer 11

选择排序和二分查找

选择排序 二分查找 ......