ICode9

精准搜索请尝试: 精确搜索
  • 二分查找实现2022-02-28 16:32:37

    二分查找 代码 public class BinarySearch { public int binarySearch(int[] list,int key){ int low = 0; int high = list.length-1; int middle = 0; if(key < list[low] || key > list[high]){ return -1; }

  • 最小生成树和二分图2022-02-25 23:33:06

    Prim 与dijistra比较像,分为朴素版和堆优化版。 朴素版Prim,时间复杂度O(n^2),一般用于稠密图。 算法流程:初始化距离矩阵为0x3f3f3f3f. 循环n次,找到距离集合最短的点t,用t更新其他点到集合的距离。 注意:与dijistra不同的在与距离的更新方式。 Prim最小生成树 #include<algorithm>

  • 2022Java学习笔记五十六(常见算法:选择排序、二分排序、二分查找原理分析)2022-02-25 19:30:16

    ##2022Java学习笔记五十六(常见算法:选择排序、二分排序、二分查找原理分析) 选择排序之前还学过一个冒泡排序 一、选择排序 每当选择当前位置,开始找出后面的较小值与该位置交换 选择排序的关键 1、确定总共需要选择几轮:数组的长度-1 2、控制每轮从以前位置为基准,与后面元素

  • acwing 789. 数的范围(二分+适合理解二分边界)2022-02-25 17:59:08

    题目:789. 数的范围 思路:先用二分找到最左边的k,然后再二分找到最右边的 #include<iostream> #include<cstdio> #include<algorithm> using namespace std; int n,q; int a[100010]; void find(int k){ int i=0,j=n-1; while(i<j){ int mid=i+j>>1;

  • cdq分治&整体二分 学习笔记2022-02-24 22:03:15

    我只是个萌新,写一篇学习笔记,希望可以帮助未来的自己和他人。如果有大佬看到了错误,您可以在评论区或者私信中指出,并且我非常欢迎您的纠错。 本博客还是从二维偏序开始铺垫,对cdq分治进行讲解(实际上是给自己讲,因为没人看)。 前置知识:归并排序 cdq分治的学习需要保证对归并排序的理解,

  • 信息学奥赛一本通T1436-数列分段II (二分)2022-02-23 17:05:18

    信息学奥赛一本通T1436-数列分段II 题目链接 对于给定的一个长度为N的正整数数列A[i],现要将其分成M(M≤N)段,并要求每段连续,且每段和的最大值最小。 关于最大值最小: 例如一数列4 2 4 5 1要分成3段 将其如下分段: [4 2][4 5][1] 第一段和为6,第2段和为9,第3段和为1,和最大值为9。 将

  • GDUT-寒假专题训练1--二分查找2022-02-22 17:01:05

    题目: 给定一个严格单调的数列,询问若干个数分别需要在数列中二分几次才能找到。如果能找到,输出二分的次数;如果不能找到,输出 NONE。二分查找参考程序如下: (数列单调递增时) l = 1, r = n, cnt = 0; while (l <= r) { mid = (l + r) / 2; cnt++; if (a[mid] == key) bre

  • 静态查找表算法2022-02-21 23:34:01

    1.二分查找的前提: 二分查找属于静态查找表系列算法的有序表查找算法,意思就是二分查找应该使用在有序数列中,数列必须是升序或者降序排列。 2.主流二分查找应用场景: 2.1 二分查找目标值 int find(int *ar, int l, int r, int target) { while(l <= r) { int mid = (l + r) /

  • 二分+三分专题与边界处理2022-02-21 20:33:21

    由于本人经常被二分与三分的各种细节卡死,所以记录一下。 二分如果出错了,注意查看二分的初始范围、二分的判断条件、L/R的赋值、最终二分得到的结果等。有时候二分错误并不是因为二分细节问题,而是题目存在边界,需要特判。   二分: 目前常用的二分有3种写法,区别在于:①闭区间或左闭右

  • 算法笔记 —— 二分答案2022-02-21 19:02:45

    一、二分答案: 在答案可能的范围内[L,R]二分查找答案,检查当前答案是否满足题目的条件要求,根据判断结果更新查找区间。 二、题目类型: 求最大值、最小值、求满足条件的最大值或最小值、最大值中的最小值、最小值中的最大值、靠近的值。 三、模板:yxc    1.求符合条件的最小值:

  • 二分图问题2022-02-21 13:59:12

    二分图问题 一个图G=(V,E)中的V若可以分为两个集合(V1,V2)使得在V1内部和V2内部任意两点不可达,则称这个图为二分图。下面出现的V1,V2即分别表示内部任意两点不可达的两个集合。 开门见山,直接开始介绍二分图中几个关系: 最大匹配=最小点覆盖=|V|-最大独立集=|V|-最小边覆盖 有

  • 二分答案例题2022-02-20 21:02:43

    二分答案即将求值问题转化为判断问题 14356: 工资 题目描述 n+e在暑假参加了打零⼯的活动,这个活动分为n个⼯作日,每个⼯作日的⼯资为Vi。有m个结算⼯钱的时间,n+e可以自由安排这些时间,也就是说什么时候拿钱,老板说的不算,n+e才有发⾔权!(因为n+e是⼟豪,他是老板的老板) n+e不喜欢身上⼀

  • 做题记录——2.14-2.192022-02-19 12:33:05

    做题记录应该会比较少。 重心并不是外题(。 2022.2.14 停课了。 今天知道了 CTS2022 的成绩,非常不开心。 呜呜呜我的 pb 呜呜呜。 晚上在听民谣。希望明天能开心一点。 CF1285F Classical? 显然是枚举一波 \(d = gcd(x,y)\),然后把 \(d\) 的倍数扔进一个 vector 里 solve。 然后就不

  • 随笔索引2022-02-19 12:04:35

    如题,仅收录2021年9月以后的博客园上的随笔,毕竟在此之前的随笔不太好弄。按知识点分类。 1.数据结构 树状数组&线段树 序列 Milk Visits G 西瓜树之二 链上二次求和 or SPJ 分块&块状链表 弹飞绵羊 带插入区间K小值 平衡树(Treap,Splay,无旋,替罪羊等) Splay [NOI2005] 维

  • 2022.02.18二分2022-02-18 20:31:34

    二分算法适用于解的最优解具有单调性的题(如『较大的最小』或『较小的最大』或『合法条件与不合法条件』呈两侧分布之类) 1.数列分段 【题目描述】 对于给定的一个长度为N的正整数数列A,现在将其分成M段,并要求每段连续,且每段和的最大值最小。 【输入格式】 第一行包含两个正整数N,M。

  • 深入分析一下二分算法2022-02-17 18:31:46

    二分算法的应用大体分为两种,即整数二分与浮点数二分,整数二分可分为二分查找,左侧边界查找与右侧边界查找三种情况。   整数二分   一.二分查找 应用场景为在一个有序数组中查找一个数的位置,时间复杂度为logn。 代码如下: int binarysearch(int a[],int t) { int l=0,r=a.leng

  • 整体二分模板(带修)2022-02-16 22:04:04

    P2617 #include<cstdio> #include<vector> #include<iostream> #include<algorithm> using namespace std; const int MAXN=1e5+5; int n,m,Ans[MAXN<<2],cg[MAXN<<2],tot,va[MAXN<<2],b[MAXN<<2],c1; struct SG{ int l,r,s

  • Template - 「整体二分」2022-02-16 22:00:21

    写的简单。主要是留给自己做复习资料。 Dynamic Rankings. 给定一个含有 \(n\) 个数的序列 \(a_1,a_2 \dots a_n\),需要支持两种操作: Q l r k 表示查询下标在区间 \([l,r]\) 中的第 \(k\) 小的数。 C x y 表示将 \(a_x\) 改为 \(y\)。 引入整体二分。 其实就是我们对于二分到的

  • 二分求解最值问题例题2022-02-16 19:01:49

    前言   当问题是求某一个最值时,可以考虑用二分来枚举答案。可以用二分的前提是答案具有二段性。以求满足条件的最小答案为例,首先最小答案一定是满足条件的,如果对于任何大于最小答案的值也满足条件,任何小于最小答案的值不满足条件,那么就称所求答案具有二段性。通过最小答案这个值

  • 二分查找模板2022-02-15 23:04:15

    模板整理自大雪菜老师。链接   算法思路:假设目标值在闭区间 [l, r] 中, 每次将区间长度缩小一半,当l = r时,我们就找到了目标值。 版本1当我们将区间 [l, r] 划分成 [l, mid] 和 [mid + 1, r] 时,其更新操作是 r = mid 或者 l = mid + 1;计算 mid 时不需要加1。 C++ 代码模板: 1 int

  • 「学习笔记」二分2022-02-14 21:34:38

    引入 二分是一种十分重要的算法。srds,我不得不举一个被用烂了的例子。 JQ 心里想了一个数 \(x\)(\(1 \leq x \leq 10\)),ZWB 来猜,如果在 \(4\) 次内猜中了,ZWB 就和 JQ [数据删除]。假设 \(x = 7\)。 第 \(1\) 次,范围为 \([1, 10]\),ZWB 猜 \(\lfloor \frac{1 + 10}{2} \rfloor = 5\)。

  • 当前的任务2022-02-11 08:00:38

    1.二阶段课程重温(mooc线上课)   贪心、排序、分治、dfs、bfs、指针、结构体、递归、递推、时间&空间复杂度计算 2.三阶段刷题(三阶段课件)    DP(*)、广搜、栈和队列(*)、树、优先队列(*)、图论(图的遍历和存储、最短路、最小生成树、拓扑排序、欧拉路、并查集) 3.冬令营刷题(Acwing)  

  • 【二分查找】35. 搜索插入位置2022-02-10 17:58:18

    题目 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。 示例 1: 输入: nums = [1,3,5,6], target = 5 输出: 2 示例 2: 输入: nums = [1,3,5,6], target =

  • 匈牙利算法求二分图最大匹配2022-02-10 12:06:25

    匈牙利算法求二分图最大匹配 给定一个二分图,其中左半部包含 n1 个点(编号 1∼n1),右半部包含 n2 个点(编号 1∼n2),二分图共包含 m 条边。 数据保证任意一条边的两个端点都不可能在同一部分中。 请你求出二分图的最大匹配数。 二分图的匹配:给定一个二分图 G,在 G 的一个子图 M 中,M 的边集

  • poj2456:Aggressive cows——贪心(二分+判定)2022-02-08 08:32:22

    poj2456:Aggressive cows——贪心(二分+判定) http://poj.org/problem?id=2456 Farmer John has built a new long barn, with N (2 <= N <= 100,000) stalls. The stalls are located along a straight line at positions x1,...,xN (0 <= xi <= 1,000,000,000). His C

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有