摘要: 0x0f 前置 前置芝士:并查集,图论基础,数论基础 其实最小生成树只是某个人用来装*的 —— 某老师 1x0f 简介 首先给出生成子图的定义(From OI Wiki): 嗯……有点抽象,不妨简化一下: 有一个图 \(G\),如果删去 \(G\) 中的若干条边与若干个点得到一个图 \(G'\),且 阅读全文
posted @ 2025-04-23 21:45 KK_SpongeBob 阅读(260) 评论(0) 推荐(1)
摘要: 同步于Luogu bolg然后发现洛谷渲染的还没cnbolgs好 题单 T1 AT_arc174_a A Multiply 题意简化 有一个长度为\(n\)的序列\(a\),你可以选择一个区间,让区间离的数全部\(\times c\),求\(a\)序列的最大值。 $ 1\ \le\ N\ \le\ 阅读全文
posted @ 2024-11-27 21:41 KK_SpongeBob 阅读(33) 评论(0) 推荐(0)
摘要: ![解释图片内容](https://img2024.cnblogs.com/blog/3247264/202510/3247264-20251014214338956-1991837318.png) 阅读全文
posted @ 2025-10-14 22:16 KK_SpongeBob 阅读(8) 评论(0) 推荐(0)
摘要: 桶的概念 首先,弄明白什么是一个桶 在一个桶里面只有一种数据,用来表示这种数据的多少 上图为5个桶 有了一个桶,我们可以做到去重,排序,统计等基础操作 例1.1 Luogu P1554 首先,我们求每一个数位 while(x){ int now=x%10;//当前数位 x/=10; } 我们使用一个 阅读全文
posted @ 2025-10-12 21:20 KK_SpongeBob 阅读(18) 评论(0) 推荐(0)
摘要: 分块 我们以P3372 【模板】线段树 1 - 洛谷为模板讲一下 概览 首先,严格意义上将分块并不是一种数据结构,而是一种思路 顾名思义,就是把一个东西分成很多个块,一个块一个块遍历 所以分块就是一种优雅的暴力,只是把一个一个遍历变成了多个多个遍历 预处理操作 首先,要进行分块 块太多或者块太少都会 阅读全文
posted @ 2025-10-12 21:13 KK_SpongeBob 阅读(24) 评论(0) 推荐(0)
摘要: 前置知识:倍增 其实倍增就是二进制拆分,因为有的数可能很大,我们按照2的幂次去查询,就能用 \(log_2n\) 的时间复杂度求解 ST 表 创建 ST 表运用的是倍增思想,我们可以用 \(O(nlogn)\) 的时间创建一个二维表,根据倍增思想就可以实现 \(O(1)\) 的区间最值查询(RMQ 阅读全文
posted @ 2025-10-12 17:14 KK_SpongeBob 阅读(13) 评论(0) 推荐(0)
摘要: ![1720402c749b6125e9794ca0334be4ab_1830076964235814848](https://img2024.cnblogs.com/blog/3247264/202510/3247264-20251008173922014-1760503005.png)![6a0e74bdd3d326f2453e581041e75bed_2487591160900076605]... 阅读全文
posted @ 2025-10-08 17:59 KK_SpongeBob 阅读(3) 评论(0) 推荐(0)
摘要: 祝我中秋节快乐[图片来源于网络] 声明:换根 DP 不是树形 DP,不要用树形 DP 的思路学换根 DP 引入 Luogu P3478算是一道经典的换根 DP 题。 不考虑任何优化,纯朴素做法怎么做? 我们以每一个点为根跑一遍 DFS,求答案即可,非常简单。 但是这样的时间复杂度是 $ O(n^2) 阅读全文
posted @ 2025-10-06 20:09 KK_SpongeBob 阅读(9) 评论(0) 推荐(0)
摘要: 题意简化 给定两个数组 \(a,b\),求让 \(\sum{(a_i-b_i)^2}\) 尽可能小所需要的最小交换次数 分析 首先,拆解题目给出的公式(完全平方) \(\sum{(a_i-b_i)^2}=\sum {{a_i}^2+{b_i}^2-2a_ib_i}\) 可以发现,\(\sum{{a_ 阅读全文
posted @ 2025-10-04 21:01 KK_SpongeBob 阅读(13) 评论(0) 推荐(0)
摘要: 我们经常会遇到需要比较字符串大小的情况,普通的方法是使用一个for循环来进行比较,这样时间复杂度是\(O(n)\)的,非常慢 但是相比较之下数字比较就很快,那我们可以把字符串转换为数字进行比较 所以进入正题 进制Hash 有一个字符串abc 我们知道每一个字符使用ASCII码存储的 我们还知道一种东 阅读全文
posted @ 2025-10-03 21:48 KK_SpongeBob 阅读(7) 评论(0) 推荐(0)
摘要: T1 签到题,不写了 T2 题目要求我们求每一种方案中的多米诺数量总和 对于一个新的点,它的答案是上一个点的答案加上这个点的方案书 数,因为每一个方案都要加上一个新的多米诺 状态:dp[i]:第i个点的答案 pd[i]:第i个点的方案数 答案:dp[n] 方程:dp[i]+=dp[i-1]+dp[i 阅读全文
posted @ 2025-08-30 17:04 KK_SpongeBob 阅读(10) 评论(0) 推荐(0)
摘要: T1T3签到 T2 首先,我们只能选择三个 我们使用一个桶标记x和y 先统计所有的方案数,再减去不合法的方案 使用乘法原理 #include<bits/stdc++.h> #define int long long #define endl "\n" using namespace std; con 阅读全文
posted @ 2025-08-28 21:51 KK_SpongeBob 阅读(7) 评论(0) 推荐(0)