ICode9

精准搜索请尝试: 精确搜索
  • 2022.7.31学习笔记2022-07-31 21:04:46

    主要内容: 1.最小瓶颈路2.kruskal 重构树3.差分约束系统4.强连通分量5.DFS树6.kosaraju算法求SCC7.tarjan算法求SCC8.SAT问题 最小瓶颈路 模板: #include<bits/stdc++.h> #define re return #define lowbit(x) (x&(-x)) #define dec(i,l,r) for(int i=l;i>=r;--i) #define inc(i,l,

  • 割点,割边和强连通分量2022-07-31 17:33:43

    link 实在惭愧,我已经不会写Tarjan了,很久之前学过但到现在已经忘得一干二净了。 其实割点割边和强连通分量的思想都是基于比较dfn和low值(废话Tarjan算法不就是在求这个吗)。而low的定义就十分关键了,在我看来,low的定义是一个点通过不多于一条非树边且不到达自己父亲的前提下能到达的

  • 记一次Linux server偶发CPU飙升问题的跟进与解决2022-07-31 15:35:44

    背景 进入6月后,随着一个主要功能版本api的上线,服务端的QPS翻了一倍,平时服务器的CPU使用稳定在30%上下,高峰期则在60%上下,但是偶尔会有单台机器出现持续数分钟突然飙到90%以上,导致大量api响应缓慢超过客户端等待时间,触发其主动断开连接产生大量nginx499。 问题分析与解决 问题期间器

  • verilog中testbench仿真时钟的生成2022-07-28 18:34:12

    一、普通时钟信号: 1、基于initial语句的方法: parameter clk_period = 10; reg clk; initial begin clk = 0; forever #(clk_period/2) clk = ~clk; end 2、基于always语句的方法: parameter clk_period = 10; reg clk; initial clk = 0;

  • 缩点—DAG,拓扑排序与Tarjan2022-07-27 21:33:02

    模板题Luogu-P3387 1.DAG 说缩点,就必须要先说DAG 有向无环图(DAG),是一种特殊的有向图,它没有有向环; 这就是个DAG 这个就是不是DAG,那你觉得里面有几个环呢? 事实上只有一个,2-3-4-5是一个环 你可能觉得5-9-8-7也是,但其实它不能算环,因为它们不是一个强连通分量 强连通分量就是若存在点

  • 圆方树(tarjan点双联通分量)2022-07-27 14:35:19

    板子 int low[N],dfn[N],stk[N],tp,dfn_cnt; void tarjan(int u,int fa) { dfn[u]=low[u]=++dfn_cnt; for(rint i=head[u];i;i=e[i].nxt) { int v=e[i].to; if(v==fa)continue; if(!dfn[to]) { tarjan(v,u);

  • 二分搜索的递归与非递归实现2022-07-26 22:35:36

    二分搜索的非递归写法很直白,就是区间问题,维护三个变量从而达到搜索的目的,代码如下。 int Binary_Search(SSTable L, ElemType key) { int low = 0, high = L.TableLen - 1,mid;//low和high是下标大小。 while (low <= high) { mid = (low + high) / 2;

  • 学校网络2022-07-25 20:04:48

    学校网络 题目描述: 一些学校连接在一个计算机网络上,学校之间存在软件支援协议,每个学校都有它应支援的学校名单(学校 A 支援学校 B,并不表示学校 B 一定要支援学校 A)。当某校获得一个新软件时,无论是直接获得还是通过网络获得,该校都应立即将这个软件通过网络传送给它应支援的学校。因

  • 7-5 堆中的路径2022-07-25 19:32:01

    将一系列给定数字依次插入一个初始为空的小顶堆H[]。随后对任意给定的下标i,打印从H[i]到根结点的路径。 输入格式: 每组测试第1行包含2个正整数N和M(≤1000),分别是插入元素的个数、以及需要打印的路径条数。下一行给出区间[-10000, 10000]内的N个要被插入一个初始为空的小顶堆的整

  • 缩点2022-07-24 13:03:03

    摘抄自 #include <bits/stdc++.h> using namespace std; #define debug(x) cout << #x << "=" << x << endl; const int N = 1e4 + 5; int n, m, cn, col[N]; int a[N], val[N], f[N], deg[N]; int top, stc[N], vis[N], dn, dfn[N],

  • 暑期第四周总结2022-07-23 20:31:40

      这周简单的学习了一下快排: public static void quickSort(int[] arr,int low,int high){ int i,j,temp,t; if(low>high){ return; } i=low; j=high; //temp就是基准位 temp = arr[low]; whil

  • 数组里的零全部移动到后面,其余数字顺序保持不变2022-07-23 16:05:30

    双指针的两种方法 方法一:时间复杂度logN,空间复杂度1 nums = [1,2,0,5,7,0] low = 0 # 指向非零部分的最后一个位置 fast = 0 # 遍历列表元素 n = len(nums) while fast < n: # 走一遍,原始空间上已经存有非零数字 if nums[fast]!=0: # 遇到非零元素将其存到nums对应low位置

  • 【树】力扣669:修剪二叉搜索树2022-07-23 11:05:13

    给你二叉搜索树的根节点 root,同时给定最小边界 low 和最大边界 high。通过修剪二叉搜索树,使得所有节点的值在 [low, high] 中。修剪树 不应该 改变保留在树中的元素的相对结构 (即,如果没有被移除,原有的父代子代关系都应当保留)。 可以证明,存在 唯一的答案 。 所以结果应当返回

  • tarjan vDCC缩点 模板2022-07-22 00:38:19

    代码 //fw #include<iostream> #include<cstdio> #include<fstream> #include<algorithm> #include<cmath> #include<deque> #include<vector> #include<queue> #include<string> #include<cstring> #include<m

  • Tarjan 基础用法 (仅代码版)2022-07-18 22:05:14

    struct Tarjan { int dfn[maxn], low[maxn], Time; bool vis_cutnode[maxn], vis_bridge[maxn]; combo Tarjan_gd(int u, int fa) {//有/无 向图的割点 dfn[u] = low[u] = ++ Time; int cnt = 0; for (int i = heade[u]; i; i = e[i].n

  • 【Coel.学习笔记】2-SAT 问题2022-07-18 21:00:20

    终于结束网络流了,真有够累的…… 接下来图论就还剩一点点了,加油~ SAT 问题相关概念 SAT 是 \(\mathcal{Satisfaction}\) 的英文缩写,意为“适应性”。对于若干个命题,每个命题都有且只有“真”和“假”两种取值。接下来会给出若干个条件,每个条件都形如“\(x_i\) 为真/假或 \(x_j\)

  • cf1697 F. Too Many Constraints2022-07-15 12:35:15

    题意: 构造长度为 \(n\)、单调不降、值域为 \([1,k]\) 的数组。要求满足 \(m\) 个条件,条件有三种类型: 1 i x 表示 \(a_i\neq x\) 2 i j x 表示 \(a_i+a_j\le x\) 3 i j x 表示 \(a_i+a_j\ge x\) \(2\le n\le 2e4, 0\le m\le 2e4, 2\le k\le 10\) 思路: \(k\) 很小。开 \(nk\) 个点

  • 202. 快乐数 【隐藏环】2022-07-13 11:33:49

      分析:对于无限循环的情况,在计算中间的下一个值的时候会出现和已经计算出来的值的重复情况 如果用一个链表存储这些计算的中间数,则链表中存在环,如果这个环的起点是1那么这个n是快了数否则不是快乐数 判断链表中是否有环可以使用快慢指针的做法,慢指针走一步快指针走两步 1 cl

  • 桥与割点2022-07-12 01:00:12

    前言: 就在前天,我学习了图的桥与割点。偷懒了两天后经过两天的理解,我,终于写写出了代码并写好了注释(^_^),今天就来写博客啦~   桥详细讲解: 首先,去找一张图。如下: (这张图画得我好累) 那么,桥是什么呢? 在一个无向图G中,若去掉一条边e,使图G分裂为两个不相连的子图,则称边e为图G的桥或割边。

  • 双连通分量2022-07-11 16:42:08

    点双连通分量 在一个连通图中(无向图)任选两点,如果他们之间至少存在两条“点不重复”的路径,称这个图为点双连通。一个图中的点双连通极大子图称为“点双连通分量”(block,2-connected component,BCC)。点双连通分量是个“可靠”的图,去掉任意一个点,其他点任然是连通的。也就是说,点双

  • 2022-07-10 17:05:26

    \(\bold{Tarjan\ SCC}\) OI-Wiki 里说的还好。 贴一个代码。 void Tarjan( int u ){ idx[ u ] = low[ u ] = ++ c , s[ ++ t ] = u , ins[ u ] = 1 , pos[ u ] = t; for( int v : V[ u ] ) if( ! idx[ v ] ) Tarjan( v ) , low[ u ] = min( low[ u ] , low[ v ] ); else if

  • 连通性问题学习笔记2022-07-10 13:37:10

    基本概念 下面介绍几个概念: 强连通(Strongly Connected),如果这个有向图任意两点连通,那么这个图是强连通的。 (有向图的)强连通分量(Strongly Connected Components,SCC),指一个图中,极大的强连通的子图。 例子: 图片来源:初探Trajan算法(求强连通分量) - Styx 的博客 - 洛谷博客 这个图中,最

  • 这次应该叫高二上一调2022-07-09 09:34:50

    T1 匹配 分析 据说是个kmp的板子,但是我把kmp基本忘光了,所以打的哈希,然后赛后去复习了kmp。。。。 AC 代码 #include <iostream> using namespace std; #define ll long long inline int in(){ int x = 0; bool f = 0; char c = getchar(); while(c > '9' || c

  • 圆方树2022-07-06 20:06:30

    目录圆方树前言定义如何建树习题CF487E tourists 圆方树 前言 众所周知,树往往有着许多非常好的性质 圆方树就是一种把一个图变成一棵树的方式 定义 我们一般在无向图上使用圆方树 先介绍点双连通分量 一个点双连通图的定义:图中任意两点之间都至少有两条不同的路径可互相抵达 一个

  • # 【圆方树】 $\text{Sol. Luogu P4606}$ 战略游戏2022-07-06 19:00:41

    \(\large \text{Date: 7.6}\) \(\text{Sol. Luogu P4606}\) 战略游戏 —— 【圆方树】解法 题目描述 给出一个简单无向连通图。有 \(q\) 次询问: 每次给出一个点集 \(S(2\le |S|\le n)\),问有多少个点 \(u\) 满足 \(u \not\in S\), 且删掉 \(u\) 之后 \(S\) 中的点不全在一个连通分量

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

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

ICode9版权所有