ICode9

精准搜索请尝试: 精确搜索
  • A 子串查询 二分+模拟 看每个子串在主串中是否出现2022-09-15 06:00:08

    链接:https://ac.nowcoder.com/acm/contest/28576/A来源:牛客网 题目描述 给出一个长度为n的字符串s和q个查询。对于每一个查询,会输入一个字符串t,你需要判断这个字符串t是不是s的子串。子串的定义就是存在任意下标a<b<c<d<e,那么”s[a]s[b]s[c]s[d]s[e]”就

  • 线段树的奇幻科技——线段树上二分2022-09-13 20:00:08

    线段树如果加上一个操作,询问在 \([l,r]\) 中第一个大于或小于某个数的位置,你会怎么做。 显然的一种想法是,维护一个区间 \(\min,\max\) 然后二分长度,每次 Query。但是明显是两只 \(\log\) 的,太慢啦,有没有快一点的方法呢。当然有。 还是维护区间 \(\min, \max\) 我们假设我们要找到

  • 关于二分边界2022-09-11 18:30:58

    关于二分边界 1. 终止条件 while (l < r) 2. mid取值 如果答案寄存在\(l\)上,则mid = (l + r + 1) >> 1,反之如果答案寄存在\(r\)上,则mid = (l + r) >> 1。 3. l, r取值 如果要求较小的答案,比如小于等于某数的最大值,就是将答案寄存在\(l\)上,以此为例此时 while (l < r) { int mid

  • CF1707A题解2022-09-10 22:01:03

    原题 CF1707A Doremy's IQ 思路概述 题意分析 给定一个长度为 \(n\) 的序列 \(a_i\) 和一个整数 \(q\),对于序列中的每个元素按顺序遍历并选数,每个元素可选可不选,但如果出现选取了 \(a_i>q\) 的情况,\(q\) 减去 \(1\),在保证选取元素数量最多的前提下输出选数情况。 思路分析 最先看

  • 搜索与图论3.12022-09-09 00:00:09

    一、简述 本文章主要介绍有关二分图的两个基础算法。 二、二分图 二分图,它的端点可以被划分为两个集合,每个集合内部不含有边,边的两个端点分别位于两个集合。 关于二分图有一个性质,即一个图是二分图当且仅当该图不含有奇数环(一个环的边数为奇数,则这个环称为奇数环)。 三、染色法

  • CF1718D 题解2022-09-08 08:00:47

    设 \(k\) 为 \(a\) 中的空位数量。 首先咱们转化这个“相似”的条件,发现它其实是说,笛卡尔树的结构相同。 那么我们把p建笛卡尔树然后把a的数往上填。如果此时有上面小于下面就挂了(挂了:即每个询问答案都是NO) 然后对于中间的空,它需要 \(>\) 下面的最大值,并且 \(<\) 上面的最小值。

  • Taxi (曼儿哈顿->切比雪夫+二分) (2022杭电3)2022-09-07 11:34:27

    题意: 多组样例,对于每组样例,先给出一个n和m,n代表点的个数,m代表询问的个数,接下来n行,每行3个数(xi,yi,wi),分别代表第i个点的坐标和权值,对于每组询问,首先给出一个坐标,让我们求出这个点到n个点中的值的最大值,这个点到第i个点的值定义为两点曼哈顿距离和i点权值的较小值。 题解: 曼儿

  • 2022.9.7 模拟2022-09-07 09:02:53

    挂了点分,原因如下: r = mid - 1 ;mid = (l + r) / 2; Unknown TLE (本地测没有超过0.7s) 反正题不难。 T3一眼原题,其实现做也会,就是缩点后的拓扑 dp 。 然后做 T2,T2读了题的前几行:线段树区间覆盖,一看数据:我是傻逼。 然后开始想乱搞,但是都不太靠谱,然后我忽然发现这题可以二分,于是就

  • 20220906总结2022-09-07 08:31:18

    20220906三道模拟题 第一道没有什么技术含量,也没有什么算法,只要注意不出一些小失误就可以了。 第二题看到数据范围之后开始犯难,感觉想到的几种写法都无法拿到满分,其中有想到二分的正解思路,但因为没想明白如何打开区间所以最终沉没了。 正解就是二分第k个数的值,看小于它的数的个数

  • 递归、二分查找2022-09-05 21:04:27

    #递归函数: 有最大递归深度,默认接近1000,各版本略有差异 count = 0 def F1(n): n += 1 print(n)#1 2 3……996 F1(n) F1(count) #修改递归深度 import sys sys.setrecursionlimit(100) count = 0 def F2(n): n += 1 print(n) # 1 2 3……96 F2

  • 二分查找2022-09-04 18:02:18

    一、时间复杂度 假设数据量是n、则每次查找的数据量分别是n、n/2、n/4、n/8、……n/2^k 。 k就是在找到数据的时候总共缩小的次数、而每次缩小的操作都只涉及两个数的操作、时间时间复杂度就是 n/2^k=1、即只剩一个数据的时候。k=log2n、所以时间复杂度就是O(logN)。 二、使用条件

  • 二分查找2022-09-04 00:01:23

    一、思路 使用二分查找的前提是数组是有序的,思路是把整个数组根据中点一分为二,如果target小于中点,则将搜索目标缩小为左半部分再继续搜索,否则搜索目标缩小为右半部分,直到找到中点为target返回。 二、解题模板 int binarySearch(int[] nums, int target) { int left = 0, righ

  • 二分图2022-09-03 12:04:49

    二分图,顾名思义,能分成两部分,每部分之间没有边的图。判定很简单,染色法,没有奇环就行。 void dfs(int x,int col){ v[x]=col; for(int i=head[x];i;i=edge[i].next){ if(!v[edge[i].v])dfs(edge[i].v,3-col); else if(v[edge[i].v]==v[x]){ jud=false;return; } } } dfs(

  • 用java实现二分查找2022-08-30 00:31:48

    /** *调用erfen方法,输入数据int[] s= {0,1,2,3,4,5}和8,输出方法的返回值 */ public class Erfen { public int search(int[] nums, int target) { int l=0; int r=nums.length-1; while(l<=r) { int m=(l+r)/2; if(nums[m]==target) return m; if(nums[m]>target)

  • 二分图2022-08-29 22:00:50

    二分图 可以将一个图分为两部分,这两部分内部没有边,都是由一部分连向另外一部分 那么就称这个图为二分图 染色法判别二分图 如何判断二分图 不含奇数环是一个充要条件 只要没有奇数环,就是一个二分图,只要是一个二分图,就没有奇数环 所以我们可以通过染色的方式来判别一个图是不是二

  • 二分查找总结202208292022-08-29 18:04:40

    为什么要使用二分查找? 普通的查找找比较多:the general find need more time! 二分搜索的有点就是时间复杂度是O(logn)的,而普通的查找时间复杂度是O(N)的。但他们所消耗的空间是一样的。同时普通查找不需要数组有序,直接for循环即可,但是二分查找需要数组有一定的顺序。 template ``

  • leetcode-793. 阶乘函数后 K 个零2022-08-28 15:34:46

    793. 阶乘函数后 K 个零 图床:blogimg/刷题记录/leetcode/793/ 刷题代码汇总:https://www.cnblogs.com/geaming/p/16428234.html 题目 思路 首先我们令\(zeta(x)\)为\(x!\)末尾零的个数。根据172.阶乘后的零有\(zeta(x)=\sum_{k=1}^\infty\left\lfloor\frac{x}{5^k}\right\rfloor\)

  • 二分查找(非递归)2022-08-27 16:04:36

    1.二分查找算法(非递归)介绍 我们讲过了二分查找算法,是使用递归的方式; 二分查找法只适用于从有序的数列中进行查找(比如数字和字母等),将数列排序后再进行查找 二分查找法的运行时间为对数时间O(㏒₂n),即查找到需要的目标位置最多只需要㏒₂n步,假设从[0,99]的队列(100个数,即n=100)

  • AT1330 题解2022-08-26 03:03:07

    前言 题目传送门! 更好的阅读体验? 这一题内部比赛时考到了,个人觉得是一道二分答案好题。 本题时间很宽松,导致 \(O(n \log^2 n)\) 的代码可以跑过去。 但是,我内部比赛的时限是 \(1\) 秒,这就导致需要 \(O(n \log n)\) 的代码了。 思路一 显然是一道二分答案题目。 二分答案老套路,设

  • AT2580 题解2022-08-26 02:00:29

    前言 题目传送门! 更好的阅读体验? 这题是常规的二分答案。 前置知识:二分答案 教大家一个小技巧:如何判断一题是否可以使用二分答案,以及如何编写程序? 设计 \(f(x)\) 函数,确认其是否满足单调性。 如果不满足单调性,可能是 \(f(x)\) 函数设计错了,但更有可能是本题无法使用二分答案。

  • 二分查找法2022-08-24 20:00:10

    使用二分查找的条件: 有序数组 需求 在数组{1,2,3,4,5,6,7,8,9,10}中,查找某个元素的位置 实现步骤 定义两个变量,表示要查找的范围。默认min = 0 ,max = 最大索引 循环查找,但是min <= max 计算出mid的值 判断mid位置的元素是否为要查找的元素,如果是直接返回对应索引

  • [2015年NOIP提高组] 跳石头2022-08-22 20:00:18

    先用二分法谋定一个数,temp_ans = (L + R) / 2; 我们假设这个temp_ans ,就是所有删除方案中,maxn个最小差值中的最大的那个,即答案:ans。而根据题目要求,我们需要拿掉M个石头。所以,我们要拿着这个temp_ans 去做个检测,检测是否可以在拿走 <= M 个石头的情况下结束检测。如果可以,则这个temp

  • 二分、三分、01分数规划2022-08-22 17:34:33

    二分、三分、01分数规划 二分查找 单调函数求零点 二分查找:在一个单调有序的集合中查找元素,每次将集合分为左右两个部分,判断解在哪个部分中并调整集合上下界,重复直到找到目标元素。 //找>=x的第一个位置 //求最小值 int l=0,r=ll,mid; while(l<r) { mid=l+(r-l>>1); //(l+r)

  • 整体二分学习笔记2022-08-20 12:30:42

    # 整体二分 本文代码见[这](https://oi-wiki.org/misc/parallel-binsearch "这")。 二分,精髓就在于一个"猜测"。猜测答案是否小于 $mid$ 、是否等于 $mid$ 。 先想一个简单的问题:一次查询全序列中排名为 $k$ 的数。 排名的定义是:小于一个数的数的个数+1。 当然可以排序然后输出。

  • 二分查找的模板2022-08-19 00:31:32

    二分查找的难度不低: 从定义上来看: 为什么需要二分查找 大神总结:[]:https://leetcode.cn/circle/article/xYBtLt/#迭代版模板

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

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

ICode9版权所有