WELCOME! SAI

You got to put the past behind you before you can move on.

  • undefined

    01 2022 档案

    摘要:问题描述: 题目描述 解题思路: 有关树状数组的基本知识这里就不再赘述,我们只需要知道他可以处理区间维护性的问题以及可修改的RMQ问题等,效率较高。 下面是有关线段树的操作 单点修改 void update(int x,int k) { for(;x<=n;x=x+(x&(-x))) t[x]+=k 阅读全文
    posted @ 2022-01-29 18:54 S·A·I 阅读(16) 评论(0) 推荐(0) 编辑
    摘要:题目描述: 题目传送门 解题思路: 首先我们先忽略题目的标题(树状数组模板),我们来尝试一种新的算法——分块。 分块思想 分块是一种优美的暴力(by DFT)。他的核心思想在于将一个要维护的区间(长度为 n n n)分成又穷个 n \sqrt n n ​ 个子区间来进行分别维护。每个子区间的长度都为 阅读全文
    posted @ 2022-01-27 13:10 S·A·I 阅读(50) 评论(0) 推荐(0) 编辑
    摘要:题目描述: 题目 解题思路: 首先思考暴力算法,我们先将待处理的 u , v u,v u,v 两点移动到相同深度的地方,然后两个一起向个自的父节点往上跳,直到跳到第一次父节点相同的时候这个相同的父节点即为它们的最近公共祖先。 很显然这个思想是没有问题,但是要是纯属暴力的一级一级往上跳这样实现,很显然 阅读全文
    posted @ 2022-01-19 11:07 S·A·I 阅读(3) 评论(0) 推荐(0) 编辑
    摘要:迭代器 容器类 pair p a i r pair pair 可以自定义一个包含任意两个类型的类似结构体的结构。 如 pair<T1,T2> T1 、T2可以是 int ,也可以是 string 调用的时候可以用 变量名.first,变量名.second,来调用 #include <iostream 阅读全文
    posted @ 2022-01-16 21:49 S·A·I 阅读(15) 评论(0) 推荐(0) 编辑
    摘要:问题描述: 给出一张有向图,问它是否存在环。 解题思路: 这里可以用到拓扑排序。 拓扑排序的定义 拓扑排序应用于有向无环图之中,排序完以后会出现这样的性质:对于一个点p,只对排序位置在它之后的点有边。如果有环,则环上的点以及环上点所能到达的点都不会被放进拓扑序列中。 举例来说,如果我们将一系列需要运 阅读全文
    posted @ 2022-01-14 12:17 S·A·I 阅读(67) 评论(0) 推荐(0) 编辑
    摘要:问题描述 求一个有向图中的强连通分量的个数。 解题思路: 明确一下强连通的定义: 存在 i i i 和 j j j 两点,使得 i i i 和 j j j 互相可抵达。 根据强连通的定义,我们可以得出,若对存在强连通的图进行置换(将所有有向边反转),那么强连通任然是强连通的。 这里我们先给出一张存在 阅读全文
    posted @ 2022-01-14 09:41 S·A·I 阅读(25) 评论(0) 推荐(0) 编辑
    摘要:问题描述: 题目传送门 解题思路: 我们首先假设存在这么一个不少于三个点的环,那么他肯定是由这么至少三个点组成的: k k k 点,环中编号最大的点。 i i i 点和 j j j 点,图中与 k k k 直接相连的两个不相同的点。 他们的大概结构如图: 此时,若这三个点共环,那么肯定存在一条 i 阅读全文
    posted @ 2022-01-13 20:04 S·A·I 阅读(35) 评论(0) 推荐(0) 编辑
    摘要:问题描述: 题目传送门 解题思路: 可以利用乘法原理,判断原数上每一位数字有几种变化情况,然后相乘即为答案。 很显然,题目所给的变化情况即为一条边,而每一个数字的变化即为一个连通块,因此单个数字变化的个数即为这个连通块的大小。 判断联通快的算法很多,可以通过 d f s dfs dfs 和 b f 阅读全文
    posted @ 2022-01-13 15:33 S·A·I 阅读(16) 评论(0) 推荐(0) 编辑
    摘要:问题描述: 题目传送门 解题思路: 我们一般会想到先在图上跑一遍最短路,然后在最短路径中找一条最长的边进行缩短。但是很容易可以发现,这种做法是很假的,因为缩短路径可能会使某条非最短路变成最短路。 此时我们需要考虑一种清奇的思路。 构建两张一模一样的图,其中上图 G G G 表示还未使用路径缩短的图, 阅读全文
    posted @ 2022-01-13 11:15 S·A·I 阅读(33) 评论(0) 推荐(0) 编辑
    摘要:例题: 题目传送门 解题思路: 各路板板摆上: SPFA 最短路(链式前向星) int head[200010]={0},tot=0; struct Gar { int x,y,w,next; } e[500010]; void add(int x,int y,int w) { tot++; e[t 阅读全文
    posted @ 2022-01-12 16:27 S·A·I 阅读(7) 评论(0) 推荐(0) 编辑

    点击右上角即可分享
    微信分享提示