摘要:
ABC399 G - Colorful Spanning Tree 题解搬运+翻译 G - 彩色生成树 题解 这个问题涉及拟阵交集。虽然解决一般的拟阵交集问题需要复杂的算法,但对于称为线性拟阵交集的特殊情况,有一个简单的随机化算法,无需复杂的实现。 拟阵的定义 一个有限集合 和它的一个子 阅读全文
摘要:
A - Doors in the Center 问题陈述 找出满足以下所有条件的长度为 的字符串: 每个字符都是 - 或 =。 它是一个回文字符串。 正好包含一个或两个 =。如果包含两个 =,它们是相邻的。 这样的字符串是唯一的。 解题思路 简单构造题,把 '=' 构造到中间即可,偶数时 阅读全文
摘要:
题目链接 https://www.luogu.com.cn/problem/P3201 题目简介 P3201 [HNOI2009] 梦幻布丁 题目描述 个布丁摆成一行,进行 次操作。每次将某个颜色的布丁全部变成另一种颜色的,然后再询问当前一共有多少段颜色。 \(1 \leq 阅读全文
摘要:
解题思路 对于两种操作, install : 求从根节点到当前节点这段路径中没有被安装过的软件数量。 unstall : 求当前子树没有被安装过的软件数量。 很显然,对于这两种操作,树链剖分算法是很不错的选择。 AC 代码 #include<bits/stdc++.h> #define debug( 阅读全文
摘要:
思路 这道题思路很简单,但是坑比较多。 首先第一个坑点就是sqrt函数的精度问题,解决这个问题还是比较简单的,我们不sqrt就可以了。 因为我们开不开方对于我们距离的大小关系是没有任何影响的,在这个问题我们不需要知道距离的精确值,大小关系才是我们需要的东西。 但是我们的另一个问题就出来了,\(a_i 阅读全文
摘要:
前置知识 今天把矩阵快速幂又复习了一遍,来博客上水一篇题解吧。 总而言之,矩阵快速幂 = 矩阵乘法 + 快速幂。 那矩阵乘法是什么呢? 设有两个矩阵 和 ,其中 是一个 矩阵, 是一个 矩阵。它们 阅读全文
摘要:
题目描述 这里有一个 的二维数组。 松鼠从 开始行动。 每次可以选择往下走或者往右走。 松鼠每达到一个点就可以获得这个点所有的松果。 求松鼠走到点 最多能够获得多少松果。 解题思路 通过题目描述,我们可以得知每次移动只能往下或者往右。 由此我们 阅读全文
摘要:
比赛链接 https://ac.nowcoder.com/acm/contest/102896 和猫猫一起起舞! 评价 签到题1,if判断即可。 AC代码 #include<bits/stdc++.h> #define debug(a) cout<<#a<<"="<<a<<'\n'; #define 阅读全文
摘要:
思路 重链剖分板子题,用线段树维护剖分过的线性结构即可。 AC代码 #include<bits/stdc++.h> #define ll long long #define re register int using namespace std; const int maxn=30005; cons 阅读全文
摘要:
思路 ST表是一种基于倍增思想的预处理算法。 倍增算法的用处: 变化了k次,k次之后是啥 用了二进制的思想 st[s][i] s是起点,跳2^i步 位运算时间复杂度为O(1) 推荐阅读资料:https://oi-wiki.org/ds/sparse-table/ AC代码 #include <bit 阅读全文