ICode9

精准搜索请尝试: 精确搜索
  • 7.6 圆方树2022-07-06 16:32:27

    \(\large \text{Date: 7.6}\) 圆方树 \(\rm Notes\) 众所周知,在无向图中,存在若干的点双联通图。 点双联通图:图中任意两不同点之间都有至少两条点不重复的路径。 我们称这张图中所有原来的点叫“圆点”。接着,对于每一个原图中的点双联通子图,我们新开一个点,删去子图中原来的边,将这个

  • 【luogu CF487E】Tourists(圆方树)(树链剖分)(线段树)2022-07-04 23:02:51

    Tourists 题目链接:luogu CF487E 题目大意 给你一个无向图,然后点有点权。 然后每次可能会单点修改点权,或者询问两个点之间所有的路径中点权最小的点。 思路 看到这种所有路径不难想到圆方树。 然后我们考虑方点就是它连着的原点的最小值。 然后会发现如果有修改会每次被卡到 \(O(n)

  • 【模板】【luogu P4630】Duathlon 铁人两项(圆方树)2022-07-03 09:32:29

    Duathlon 铁人两项 题目链接:luogu P4630 题目大意 给你一个无向图,然后你可以按顺序选三个点 a,b,c,保证 a 可以到 b,b 可以到 c,而且存在方案使得这两个路径的交点只有 b。 然后问你有多少个满足的三元组。 思路 首先如果这个是森林的话那我们可以很好的搞。 (反正各种方法随便你) 那我

  • 1291. 顺次数2022-07-02 15:31:44

    1291. 顺次数 这种量少的题最简单快捷的方法就是打表。 class Solution { public List<Integer> sequentialDigits(int low, int high) { int[] cur = new int[]{12,23,34,45,56,67,78,89,123,234,345,456,567,678,789,1234,2345,3456,4567,5678,6789, 12345

  • [极客大挑战 2019]FinalSQL-异或注入2022-06-29 22:03:06

    1、首先打开题目如下: 2、寻找注入点,点击神秘代码发现会返回不同的信息,然后尝试union、and等关键字发现被屏蔽,如下: 3、关键词被过滤了,使用不了报错注入、联合注入、bool注入,因此想到了异或注入,经过尝试发现^符号未被过滤,(1^2=3),如下: 4、发现了注入点就需要进行尝试去编写脚本去

  • QuickSort2022-06-27 21:35:11

    Like Merge Sort, QuickSort is a Divide and Conquer algorithm. It picks an element as pivot and partitions the given array around the picked pivot. There are many different versions of quickSort that pick pivot in different ways.  Always pick first eleme

  • 2-SAT 浅谈2022-06-26 00:32:59

    P4782 【模板】2-SAT 问题 2-SAT 问题,描述类似存在多组关系,求解当所有关系成立时的情况,因为描述关系之间只存在可以互相推导和不能互相推导两种关系,所以称作 2-SAT 。 我们针对一个 \((a \lor b)\)(表示 \(a\) 和 \(b\) 其中有一个为真即成立)的状态,我们可以推导出两个二元对立的式

  • 数据结构(13) - 折半排序(二分排序)2022-06-25 18:00:24

    折半插入排序(binary insertion sort)是对插入排序算法的一种改进,由于排序算法过程中,就是不断的依次将元素插入前面已排好序的序列中。由于前半部分为已排好序的数列,这样我们不用按顺序依次寻找插入点,可以采用折半查找的方法来加快寻找插入点的速度。 1 /** 2 * C data structur

  • lowdb2022-06-22 04:00:50

    const Low = require('lowdb'); class SyncAdapter { read() {return {}}//初始化为对象才能db.defaults write(data) { /* ... */ } // should return nothing } const adapter = new SyncAdapter(); const db = new Low(adapter); // Set some defaults db.de

  • 省选模板2022-06-17 15:33:37

    tarjan 缩强连通分量 Graph G; int dfn[N],low[N],dfscnt; int stack[N],top; int scc[N],scccnt; void tarjan(int u){ dfn[u]=low[u]=++dfscnt;stack[top++]=u; for(int v,i=G.fir[u];i;i=G.nex[i]){ v=G.to[i]; if(!dfn[v]){ tarjan(v); low[u]=std::min(low[u]

  • [NOIP2009 提高组] 最优贸易 题解2022-06-15 00:03:51

    题目描述 \(C\) 国有 \(n\) 个大城市和 \(m\) 条道路,每条道路连接这 \(n\)个城市中的某两个城市。任意两个城市之间最多只有一条道路直接相连。这 \(m\) 条道路中有一部分为单向通行的道路,一部分为双向通行的道路,双向通行的道路在统计条数时也计为 $1 $条。 \(C\) 国幅员辽阔,各地

  • 【C# 排序】归并排序 merge sort2022-06-13 14:33:27

    定义 归并排序是建立在归并操作上的一种有效,稳定的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。 将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。 若将两个有序表合并成一个有序表,称为二路归并。   O ( n log ⁡ n ) {

  • tarjan强连通--zhengjun2022-06-11 14:01:27

    强连通就是在一个有向图中任何一个点都可以到达除这个点之外的所有点。 然后,在处理的时候,就可以把这一个子图直接变成一个点。 比如说这张图 就可以缩成这张图 原图中的 就是一个强连通 也就是说只要有环,就一定有一个强连通(其实自己一个也算一个强连通) 然后,就是找环的环节~~~

  • 【C# 排序】插入排序法2022-06-11 12:03:21

    概览     插入排序法 算法思想:每次将一个待排序的元素按其关键字大小插入到前面已排好序的子序列中,直到全部记录插入完成。 例如:元素13要排序时候,可以认为13之前元素都已经排序完成,此时只要把13与之前元素一 一比较,然后找到合理位置插入。 代码   空间复杂度:(O(1)时间复

  • 洛谷P2860 [USACO06JAN]Redundant Paths G (tarjan,边双缩点)2022-06-10 22:00:10

    本题的大意就是加最少的边使得图成为边双。 多举例子,画图分析可得:最终答案就是叶子节点(度数为1的点)的个数加1在除以2。 那么我们的目的就转化为找叶子节点: 首先通过tarjan找到割边,再dfs将原图分为几个边双(通过割边划分),缩点,最后统计度数为1的节点个数即可。 1 #include<bits/stdc

  • 洛谷P2341 [USACO03FALL / HAOI2006] 受欢迎的牛 G (tarjan缩点)2022-06-10 21:34:55

    在本题中很明显,给你一个有向图,要用tarjan缩点。 缩点后,一头牛要受到所有牛的欢迎,那么该点的出度要为0,这是容易证明的:如果该点还有出度,比如a连向b,那么a不受到b的欢迎。所以我们要找出度为0的点,找到后该点中点的个数就是答案。 注意:出度为0的点只能有一个,如果有多个出度为0的点,那么

  • LeetCode 669. Trim a Binary Search Tree2022-06-10 16:34:51

    LeetCode 669. Trim a Binary Search Tree (修剪二叉搜索树) 题目 链接 https://leetcode.cn/problems/trim-a-binary-search-tree/ 问题描述 给你二叉搜索树的根节点 root ,同时给定最小边界low 和最大边界 high。通过修剪二叉搜索树,使得所有节点的值在[low, high]中。修剪树 不应

  • idea - 警告 The IDE is running low on memory and this might affect performance. Please consider increa2022-06-10 11:34:04

    1.背景 启动idea警告提示 The IDE is running low on memory and this might affect performance. Please consider increasing available heap 这是idea配置的最大缓存不够用导致 最新版本的idea没有找到更改缓存大小的入口【我的是2021.3版本】,博客上的都是旧版的解决   2.解

  • 常用排序算法(C语言)2022-06-10 11:33:40

    1.冒泡排序 void BubbleSort(int a[],int len) {int tmp; for (int i=0; i<n-1; i++) { int flag = FALSE; for(int j=n-1;j>i;j--) if(a[j-1]>a[j]) { tmp = a[j-1]; a[j-1] = a[j];

  • C语言快速排序2022-06-09 23:33:34

    #include<stdio.h> #define MAXSIZE 100 typedef int KeyType; typedef struct { KeyType key; }RecordType; typedef struct { RecordType r[MAXSIZE+1]; int length; }RecordList; RecordList L; int QKpass(RecordList *L,int low,int high) { int p

  • 【875. 爱吃香蕉的珂珂】二分查找2022-06-07 19:04:33

    class Solution { public int minEatingSpeed(int[] piles, int h) { int ans = 0; int low = 1; int high = 1000000001; while(low<high){ int mid = ( low +high)/2; if(check(piles,mid,h)){

  • 八大排序算法C/C++代码实现2022-06-05 23:35:23

    八大排序算法代码实现 tip: 本文所有排序算法均为升序排序 基本数据结构 typedef int dataType; //这里主要针对整型数据进行排序 typedef struct { vector<dataType> key; //顺序表关键字 int length; //顺序表长度 }List; tip: 这里vector<dataType>表示以储存dataTy

  • Java: sort2022-06-05 14:01:37

               选择排序: protected static void selectSort(int[] array){ int tmp; int minIndex; for(int i = 0; i < array.length - 1; i++){ minIndex = i; for(int j = i + 1; j < array.length; j++){ if(array[j] < array[min

  • 洛谷P1656 炸铁路 (求割边)2022-06-03 12:02:06

    用tarjan变种求割边的模板题 其实还可以求出所有的边双(用栈),但本题不需要求。 1 #include<bits/stdc++.h> 2 using namespace std; 3 const int N=1e5+10; 4 int head[N],nxt[N<<1],to[N<<1],tot; 5 pair<int,int> edge[N]; 6 int dfn[N],low[N],top/*st[N]*/; 7 int cnt,i

  • tarjan大合辑2022-06-03 12:00:07

    \(tarjan\) 大合辑 1.割边: #include<bits/stdc++.h> using namespace std; const int N = 1e5 + 10, M = 1e6 + 10; int hd[N], nt[M], to[M], tot = 1;/////// tot = 1反边 inline void add(int u, int v) { nt[++tot] = hd[u]; hd[u] = tot; to[tot] = v; } int n, m;

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

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

ICode9版权所有