08 2021 档案
摘要:更好的阅读体验 我的第一篇黑题题解,应该好好庆祝。 题目大意 给定一个字符串集合,支持的操作有插入,删除和查询给定字符串在给出的模板字符串出现的次数。 操作数 m≤3×105m \leq 3 \times 10^5m≤3×105,输入字符串总长度 ∑∣si∣≤3×105\sum |s_i| \leq
阅读全文
摘要:T1 偶数个 3\text{T1 偶数个 3}T1 偶数个 3 题目大意 编程求出所有的 nnn 位数中,有多少个数中有偶数个数字 333。 0<n<10000 < n < 10000<n<1000 说明: 一位数有 999 个:1、2、3、4、5、6、7、8、91、2、3、4、5、6、7、8、91
阅读全文
摘要:AC 自动机 引入 AC 自动机是一种用于解决多模式串以及一主串匹配的字符串算法。 问题通常是给出若干个模式串 S 以及主串 T,询问若干个模式串分别在主串中的某些信息。 AC 自动机构建在 Trie 的结构基础上,结合了 KMP 算法的失配指针思想。 在进行多模式串匹配前,只有两个步骤需要去实现:
阅读全文
摘要:字典树 算法思想 字典树(TrieTrieTrie)是一个比较简单的数据结构,也叫前缀树或 TrieTrieTrie 树,用来存储和查询字符串。 例如,water,wish,win,tie,tired 这几个单词可以用以下方式存储 : 此时每一个叶子结点递归往上到根节点都是对应一个字符串。 其中每个
阅读全文
摘要:什么是平衡树 平衡树其实是二叉搜索树的优化,满足 BST 1 性质。 关于平衡树的种类其实有很多,但本文不涉及太多,我们讲讲最常用的 333 中平衡树吧。 TreapTreapTreap fhq Treapfhq \ Treapfhq Treap SplaySplaySplay 先想想二叉搜索树为什
阅读全文
摘要:1. 摩尔投票法 洛谷 P2397 自从上次 redbag 用加法好好的刁难过了 yyy 同学以后,yyy 十分愤怒。 他还击给了 redbag 一题,但是这题他惊讶的发现自己居然也不会,所以只好找你 一共有 nnn 个正整数 aia_iai,他让 redbag 找众数。他还特意表示,这个众数出现
阅读全文
摘要:逆元 什么是逆元 在数论中,如果 ab≡1(modp)ab \equiv 1 \pmod{p}ab≡1(modp) ,我们就说 aaa 和 bbb 在模 ppp 意义下互为乘法逆元,记作 a=inv(b)a = inv(b)a=inv(b)。 逆元有什么用呢? 我们常常遇到一些题目要求结果对一个大质
阅读全文
摘要:KMP 算法 算法介绍 Knuth-Morris-Pratt 字符串查找算法,简称为 “KMP算法”,常用于在一个文本串S内查找一个模式串P 的出现位置,这个算法由 Donald Knuth、Vaughan Pratt、James H.Morris 三人于 1977 年联合发表,故取这 3 人的姓氏
阅读全文
摘要:圆方树的定义 圆方树是用来解决仙人掌图的问题的,那什么是仙人掌图呢? 即不存在边同时属于多个环的无向连通图是一棵仙人掌。 点双连通分量的定义 要介绍圆方树,首先要介绍点双连通分量。 一个点双连通图的一个定义是:图中任意两不同点之间都有至少两条点不重复的路径。 一种简单的定义:不存在割点的图。 但这种
阅读全文
摘要:圆方树的定义 圆方树是用来解决仙人掌图的问题的,那什么是仙人掌图呢? 即不存在边同时属于多个环的无向连通图是一棵仙人掌。 点双连通分量的定义 要介绍圆方树,首先要介绍点双连通分量。 一个点双连通图的一个定义是:图中任意两不同点之间都有至少两条点不重复的路径。 一种简单的定义:不存在割点的图。 但这种
阅读全文
摘要:圆方树的定义 圆方树是用来解决仙人掌图的问题的,那什么是仙人掌图呢? 即不存在边同时属于多个环的无向连通图是一棵仙人掌。 点双连通分量的定义 要介绍圆方树,首先要介绍点双连通分量。 一个点双连通图的一个定义是:图中任意两不同点之间都有至少两条点不重复的路径。 一种简单的定义:不存在割点的图。 但这种
阅读全文
摘要:更好的阅读体验 圆方树的定义 圆方树是用来解决仙人掌图的问题的,那什么是仙人掌图呢? 即不存在边同时属于多个环的无向连通图是一棵仙人掌。 点双连通分量的定义 要介绍圆方树,首先要介绍点双连通分量。 一个点双连通图的一个定义是:图中任意两不同点之间都有至少两条点不重复的路径。 一种简单的定义:不存在割
阅读全文
摘要:更好的阅读体验 T1 出现次数超过一半的数 损坏的传送门 题目大意 给出一个含有 n(0<n<=1000)n(0 < n <= 1000)n(0<n<=1000) 个整数的数组,请找出其中出现次数超过一半的数。 数组中的数大于 −50-50−50 且小于 505050。 如果存在这样的数,输出这个数
阅读全文
摘要:更好的阅读体验 损坏的传送门 听说是学校原创的。 题目大意 公园里有一些地方,有些有路相连。公园经理需要修建一些旅游线路,他想安排旅游线路成一个环。如果一条铁路属于两个及以上的旅游线路,就有可能发生冲突,如果一条铁路不属于旅游线路,就不需要修建。 现在我们知道这个计划了,你能告诉我们有多少铁路不需要
阅读全文
摘要:更好的阅读体验 传送门 题目大意 FJ 要录制节目,每个节目具有一个指定的开始时间和结束时间。FJ具有两台摄像机,可以同时录制两个节目(FJ 一旦选择了某个节目来录制,就一定要录制完该节目)。请帮他确定录制的方案,使得 FJ 可以录制最多的节目,以提供给那些奶牛的粉丝们。 解题思路 贪心思路 贪心策
阅读全文
摘要:更好的阅读体验 传送门 题目大意 Farmer John 的 NNN 头编号为 1…N1 \ldots N1…N 的奶牛(1≤N≤1051 \leq N \leq 10^51≤N≤105),分散在牛棚中 NNN 个编号为 1…N1 \ldots N1…N 的不同位置,奶牛 iii 位于位置 pip_
阅读全文
摘要:更好的阅读体验 损坏的传送门 话说这不是大水题吗??? 题目大意 给你一个变量 xxx,初始值为 000 并且该变量的值将不会超过 int 类型的范围。 现在要让变量 xxx 支持 444 种操作。要对 xxx 进行 444 中操作: ADD y 操作,该变量的值增加 yyy。 SUB y 操作,该
阅读全文
摘要:更好的阅读体验 传送门 题目大意 给定一张无向图,求每个点被封锁之后有多少个有序点对 (x,y)(x!=y,1<=x,y<=n)(x,y)(x!=y,1<=x,y<=n)(x,y)(x!=y,1<=x,y<=n),满足 xxx 无法到达 yyy。 解题思路 首先可以确定这题需要先求割点 这不是一看就
阅读全文
摘要:题目大意 给出一个无向连通图,让你改造成一个有向图,并保证强连通。 解题思路 先思考,将无向图改成有向图,需要顾及到一些割边,因为把割边删掉后,原图就不联通了,所以改造后的有向图需要完整的保留割边。 而对于不是割边的边,我们只需要保留一条边,可以在 tarjan 时,记录下来。 需要注意的:多测不清
阅读全文
摘要:更好的阅读体验 定义 割点:给定一无向连通图,对于其中一点 uuu,若从图中删掉 uuu 和所有与 uuu 相连的边后,原图分裂成成 222 个或以上不相连的子图,则称 uuu 为原图的割点(或割顶)。 割边:给定一无向连通图,对于其中一边 (u,v)(u,v)(u,v),若从图中删掉 (u,v)(
阅读全文
摘要:更好的阅读体验 定义 割点:给定一无向连通图,对于其中一点 uuu,若从图中删掉 uuu 和所有与 uuu 相连的边后,原图分裂成成 222 个或以上不相连的子图,则称 uuu 为原图的割点(或割顶)。 割边:给定一无向连通图,对于其中一边 (u,v)(u,v)(u,v),若从图中删掉 (u,v)(
阅读全文
摘要:题目大意 给定一个 nnn 个点、mmm 条边的无向图,试求从图中删去一个点后,图中最多有多少个连通分量。 数据范围: n,m≤40000n,m≤40000n,m≤40000 解题思路 首先要明白这题不是要你找割点,而是求图中删去一个点后,图中最多有多少个连通分量。 图中删去一个点后,图中连通分量个
阅读全文
摘要:好用的快读 快读 111 struct Fastio { template <typename T> inline Fastio operator>>(T &x) { x = 0; char c = getchar(); while (c < '0' || c > '9') c = getchar(
阅读全文
摘要:原题传送门 题目大意 给定一棵 nnn 个点的树,边具有边权。要求作以下操作: DIST:询问点 aaa 至点 bbb 路径上的边权之和。 KTH:询问点 aaa 至点 bbb 有向路径上的第 kkk 个点的编号。 有多组测试数据,每组数据以 DONE 结尾。 解题思路 前置知识:树上差分,树上倍增
阅读全文
摘要:任务( tasktasktask ) 损坏的传送门 Description 没头脑是一家大公司的 CEOCEOCEO 。该公司由 NNN 人组成,编号为 111 到 NNN ,没头脑编号为 111 。每个员工(没头脑除外)都有一个老板,我们说这个员工是该老板的助手。每个老板都可以有多名助手。没头脑没
阅读全文
摘要:洛谷 P7735P7735P7735 [ NOI2021NOI2021NOI2021 ] 轻重边 原题传送门 题目大意 有一棵 nnn 个结点的树,树上的每一条边可能是轻边或者重边。接下来你需要对树进行 mmm 次操作,在所有操作开始前,树上所有边都是轻边。操作有以下两种: 给定两个点 aaa 和
阅读全文
摘要:题目大意 给定一个 nnn 个点 mmm 条边的无向图,问最少删掉多少条边能使得编号小于等于 kkk 的点都不在环上。 解题思路 对于这种判断无向图有没有环的题,一般可以想到用并查集维护。 首先可以判断出,对于一条边 u→vu \to vu→v,若 u>ku>ku>k 且 v>kv>kv>k,则它肯
阅读全文
摘要:数字游戏(number) 题目大意 不高兴找到了一个N行M列的矩阵。矩阵的第一行数字为 1,2,3,...,M1,2,3,...,M1,2,3,...,M,第二行数字为 M+1,M+2,...,2×MM+1,M+2,...,2 \times MM+1,M+2,...,2×M,第 NNN 行数字为 (
阅读全文
摘要:原题传送门 题目大意 输入 mmm 个长度均为 nnn 的 DNA 序列,求一个 DNA 序列,该序列能满足到 mmm 个序列的总距离最小。 两个等长字符串的距离定义为字符不同的的位置的个数,例如,ACGTACGTACGT 和 GCGAGCGAGCGA 的距离为 222(第 111、第 444 位置
阅读全文
摘要:Going from u to v or from v to u (poj2762)Going \ from \ u \ to \ v \ or \ from \ v \ to \ u \ (poj2762)Going from u to v or from v to u (poj2762) 损坏的
阅读全文
摘要:原题传送门 题目大意 有 nnn 个布尔变量 x1∼xnx_1\sim x_nx1∼xn,另有 mmm 个需要满足的条件,每个条件的形式都是 「xix_ixi 为 true / false 或 xjx_jxj 为 true / false」。 比如 「x1x_1x1 为真或 x3x_3x3
阅读全文
摘要:原题传送门 题目大意 根据宪法,Byteland 民主共和国的公众和平委员会应该在国会中通过立法程序来创立。 不幸的是,由于某些党派代表之间的不和睦而使得这件事存在障碍。 此委员会必须满足下列条件: 每个党派都在委员会中恰有 111 个代表。 如果 222 个代表彼此厌恶,则他们不能都属于委员会。
阅读全文
摘要:原题传送门 题目大意 有 nnn 个王子和 nnn 个女孩,每个王子可能喜欢多个女孩。先给出一个初始的完备匹配,问每个王子可以选择哪些女孩,即无论王子选择这些女孩中的哪一个,使得剩下的王子仍能够选择喜欢的女孩。 解题思路 比较裸的 Tarjan。 建图: 连一条从王子到他喜欢的女孩的有向边。 连一条
阅读全文
摘要:原题传送门 Tarjan 算法 1. 什么是 Tarjan Tarjan 算法是一种用于求解有向图的强连通分量的算法,时间复杂度为 O(n+m)O(n + m)O(n+m)。它可以求出每个强连通分量的大小、属于其的顶点和强连通分量的总数。 2. 认识 dfs 生成树 dfs 生成树处理强连通分量的一
阅读全文