ICode9

精准搜索请尝试: 精确搜索
  • 整体二分(今天终于听懂了)2022-07-21 15:31:28

    整体二分:当看到满足以下三个条件的问题:1.答案可以二分 2.多组询问 3.答案可以分批计算贡献(可加性),可以考虑用整体二分来做。 我们先来看看如果单独二分会怎么样。二分的一般是操作数、排名之类的,到了一层二分,就把 \(l\) 到 \(mid\) 的贡献计算一遍。之后如果贡献少了,就到 \(mid\)

  • KM 二分图最大权匹配2022-07-19 22:33:31

    以下没有证明。 这玩意儿比 dijkstra 费用流短,而且不太跑得满,内存连续性也相当好。缺点可能是对两侧点数有严格的限制,且不能求 \(i\) 匹配的最优方案,还有相当不直观。 先考虑二分图最大权匹配的对偶问题:最小化顶标和 \(\sum y_i\),满足对于每条边,\(y_u +y_v \ge w\)。(假设边权非负)

  • 2022 暑假模拟赛 整理合集2022-07-19 22:03:54

    两天四道 AtC 小清新题... Contest1876 - NOIP2022模拟测试赛(一) Problem A: Eating Symbols Hard 双哈希 + 差分。 【ARC099D】 Eating Symbols Hard 题解——by 531 反思:一味认为题目实现不需要相关算法/数据结构的配合,过度推性质。 哈希意识薄弱。 Problem B: Independence 补图

  • 签到2022-07-17 21:12:05

    原题链接 题目描述 背景:本来正在水群,计划12题,但是少了一题签到,群友给了建议(见样例下面的备注),就出了个签到题,在此感谢。 给定一个序列,你可以在序列中任取 44 个数 a,b,c,d (可以重复选取),问是否有一种选择满足:a+b+c=d。 输入描述: 第一行,一个正整数 n ( 1 <= n <= 1e3) 第二行 n 个

  • World Tour Finals 2019 D - Distinct Boxes 题解2022-07-16 17:01:44

    太神了,专门写一篇题解 qwq 简要题意:给你 \(R\) 个红球和 \(B\) 个蓝球,你要把它们放到 \(K\) 个箱子里,要求没有两个箱子完全相同(即两种球个数就相同),求 \(K\) 的最大值。 设第 \(i\) 个箱子中有 \(x_i\) 个红球,\(y_i\) 个蓝球,就变成了找平面上一个大小最大的点集 \((x_i,y_i)\),使 \(

  • go语言整数二分模板2022-07-16 15:31:54

     首先我们明确,二分都是由于某个可以检查的条件,将一个区间分为两半  所以我们首先有一个check函数,对中间mid进行判断 func check(mid int) bool { }  第二步,对区间进行划分  两种区间的划分,对应两种写法 // 区间[l, r]被划分成[l, mid]和[mid + 1, r]时使用: func b

  • POJ2104 K-th number (整体二分)2022-07-16 10:04:42

    刚学了整体二分,用这种解法来解决这道题。 首先对于每个询问时可以二分解决的,这也是可以使用整体二分的前提。将原来的序列看成是插入操作,和询问操作和在一起根据值域进行二分。用树状数组来检验二分值。 1 #include<bits/stdc++.h> 2 using namespace std; 3 const int N=1000

  • CF387D George and Interesting Graph2022-07-14 16:06:34

    link 一道构造题,验证的过程用到了网络流。 数据范围不大,考虑枚举中心点是谁,然后就考虑暴力补齐中心点和周围点的边,补齐过程扫描一遍统计边数即可,注意需要的边数是 \(2m-1\) ,导致我卡了一会。然后对于周围的点,由于每个点已经被强制夺去了一个出度和一个入度,那么每个点就还需要一个

  • 选择排序,二分查找,Arrays类的简单使用,二维数组2022-07-14 10:00:45

    5.8、选择排序 规则 从数组的第一个元素开始,依次和数组后面的元素进行比较,如果满足条件,交换元素。 案例 //选择排序 int[] arr = {133,242,189,153,190}; for (int i = 0; i < arr.length - 1; i++){ for (int j = i+1; j < arr.length; j++){ if (arr[i] > arr[j]){

  • Lintcode 二分查找2022-07-14 07:31:08

    14 · 二分查找 算法 简单 通过率39%   题目 题解 笔记 讨论 排名 描述 给定一个排序的整数数组(升序)和一个要查找的整数 target,用O(logn)O(logn)的时间查找到target第一次出现的下标(从0开始),如果target不存在于数组中,返回-1。 样例 样例

  • 染色法判定是否是二分图2022-07-13 12:33:55

    算法思路:使用深度优先遍历遍历整张图,如果发现某个顶点已经染过色,并且和相邻顶点的颜色相同,则返回false,否则一直染下去,直到遍历完整张图。 代码实现: #include <iostream> #include <cstring> #include <algorithm> using namespace std; const int N = 100010, M = 2 * N; int h

  • 并查集判断二分图2022-07-13 12:02:18

    原理 首先,一个图是二分图,当且仅当图中不含奇数环。那么我们只要用并查集判断图中是否含有奇数环。 设二分图的两个集合为s1、s2,因为集合内不能有边,那么二分图的环首尾相接的边必然是$ s1\rightarrow s2 \rightarrow s1\rightarrow s2\dots $ 如图所示,如果边是奇数,不能成环。因为

  • 【Coel.学习笔记】最大流的拆点与判定问题2022-07-12 09:01:14

    最大流的问题好多…… 最大流判定问题 这类问题通常会把二分、枚举和最大流相结合。 [USACO2005FEB] Secret Milking Machine 洛谷没有收录( 在一个 \(N\) 点 \(P\) 边的无向图中从 \(1\) 到达 \(N\) 走 \(T\) 次,要求每次走过的道路互不相同,并让走过的最长道路最短化,求出这条道路的

  • 整体二分2022-07-12 08:34:27

    概念 当有很多询问,每个询问都可以通过二分解决,但是对每个询问都二分一次的时间复杂度不能接受,不妨将所有询问同时二分,是为整体二分。 要求: 允许离线。 修改之间互相独立,且具有可加性。 答案可以二分。 例题 全局第 k 小 在一个序列中多次查找第 \(k\) 小的数。 设当前询问

  • wqs 二分学习笔记&做题记录2022-07-10 19:00:14

    一直以为是什么很难的算法。。 wqs 二分解决的就是形如“恰好选 \(k\) 个的最大值” 这样的问题。 具体而言就是恰好 \(k\) 个这个条件很难搞时,对数据做一个偏移量,也就是所有数都去加上 \(x\) ,然后去掉这个条件跑最优解,这样得到的最优解选了几个计算一下,可以发现这个 \(x\) 会对最

  • BST二分搜索树(二叉树)2022-07-10 18:05:08

    java实现二叉树   1、定义数据结点 class Node<E> { E e; Node<E> left, right; int size, depth;// 扩展 public Node() { this.e = null; this.left = null; this.right = null; }

  • wqs二分学习笔记2022-07-10 17:33:00

    有一道简单的题,序列 \(a\) 有 \(n\) 元素,选正好 \(k\) 个元素和的最大值? 这道题可以用排序,但是这道题可以用来理解「二阶导」恒定的正负性。 用 \(g_k\) 表示选正好 \(k\) 个元素的最佳答案,把 \((k,g_k)\) 形成的点画在坐标系上,就能得到一个「上凸包」。 例如 \(a = [9,8,4,2,-9,-

  • P1182 数列分段 Section II2022-07-09 13:34:01

    https://www.luogu.com.cn/problem/P1182涉及知识点:贪心,二分,前缀和黄色题 思路: 答案。在此题中,我们首先要确定答案的范围。显然,答案最小可能是数列中的最大值(记为 l ),最大可能是所有数的和(记为 r)。其次,我们发现,给出一个解,判定这个解是否合法,在此题中显得简单。这启示我们

  • P7585 [COCI2012-2013#1] LJUBOMORA2022-07-09 07:00:06

    https://www.luogu.com.cn/problem/P7585涉及知识点:二分橙色题   思路: 这道题正解是二分,关键词为最大值(即嫉妒值)最小。看到这种问题的可优先考虑二分。确定核心算法后,进一步分析发现:如果每个分到弹珠的孩子都分到最多的弹珠,那么嫉妒值越大,分到弹珠的孩子越少;嫉妒值越小,分到弹

  • 2022-7-8 "STL"相关2022-07-08 22:31:28

    CF1077E Thematic Contests 水题。注意每次暴力删除/Copy会T飞,这时我们注意删除的元素只有 \(log\) 个,所以倒回去即可。算是一个 trick 吧。 [POI2009]TAB-Arrays 刚开始看还挺难的。但后来发现是个水题(?)发现无论怎么交换行或列,他们总在同一行或同一列。然后判断即可。如果有可能

  • 进击的奶牛[普及-] 二分答案2022-07-08 17:32:40

    https://www.luogu.com.cn/problem/P1824 涉及知识点:二分橙色题 思路: 题目大体意思(更好理解):有n头牛,你需要在其中选c头,使得这c头牛最近的2头牛之间的的距离最远,输出最近的最远距离 我们可以从最大距离和最小距离之间选择一个最大的可实现距离,因为数据过大,无法顺序选择,只有通过二

  • 排序 二分学习2022-07-08 03:02:36

    AcWing基础课学习 排序 1. 快速排序 1. 原理 对于一段无序的数列,若要将其排序,可以以此步骤进行: 对于一段的数列,可以先任取一点mid作为判断点。(其中mid一般为数列中点) 对于这段数列进行一次遍历,将大于mid的数放于右端,小于mid的数放于左端。 然后对于分配过的序列,选取其[l,p],[p+

  • 暑假集训Day4 B(贪心+二分答案)2022-07-07 21:04:18

    题目链接在本地,题目大意是从一段只包含0,1,2 的字符串中选出若干个子序列“2020”,选出一个2020序列以后,这四个数字从原来的位置上删除,问最多能选出多少个这种序列。 一开始想的贪心思想是从左往右扫描,越靠左满足2020的越先选出来,后来发现了反例就是20202200,如果越靠左满足的越先选

  • ACM散题习题库4【持续更新】2022-07-06 01:31:20

      401. 不降子数组游戏【二分】 直接二分就行。因为getAns函数写错了,wa了几发。(当nxt[l]>r的时候,这个时候就是递增子数组,就是数组长度的组合数)   402. 子串(数据加强版)【组合数】 一开始想到了从两边遍历,然后把1单独拎出来,后面没想到切入口。 然后看到严gg的文章,同一段0的隔板数

  • 二分查找的简单理解2022-07-05 23:31:13

    详细描述 二分查找的搜索过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜索过程结束;如果某一特定元素大于或者小于中间元素,则在数组大于或小于中间元素的那一半中查找,而且跟开始一样从中间元素开始比较。如果在某一步骤数组为空,则代表找不到。这种搜索算法每一次比

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

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

ICode9版权所有