摘要: Placing Squares 题解 拍死脑袋也想不出来啊。 敲黑板: \(x^2\) 的组合意义,就是在一个长为 \(x\) 的区间内放小球(一个黑色,一个白色,可以重叠)的方案数。 这样题目就转化为了在一个序列内插板,每两个板之间放两个小球的方案数。 这么转化可以将难以处理的平方代价转化掉,可容 阅读全文
posted @ 2025-11-12 15:03 GuoSN0410 阅读(7) 评论(0) 推荐(0)
摘要: 字符串 KMP #include<bits/stdc++.h> #define N 1000010 #define fo(a, b, c) for(int b = a; b <= c; b++) using namespace std; int n, m, b[N]; string s, t; in 阅读全文
posted @ 2025-11-10 18:16 GuoSN0410 阅读(7) 评论(0) 推荐(0)
摘要: 简介 反悔贪心其实就是带反悔的贪心,当发现某个题目 DP 不了,且贪心正确性有问题时,就考虑反悔贪心。 例题 Work Scheduling G 题解 按截至日期从小到大考虑选,能选就选,遇到一个工作完成不了时,就从前面已完成的工作中找一个利润最小的丢弃掉。发现 \(D_i\) 是递增的,所以丢弃到 阅读全文
posted @ 2025-11-09 09:26 GuoSN0410 阅读(7) 评论(0) 推荐(0)
摘要: T2 爆搜 注意,string 只能与 string 运算,无法和 char 运算;访问 string 某一位时则是 char T5 数位 DP。 转化题意:若 \(x\) 是 \(B\) 的倍数,则 \(x\mod B = 0\)。 先设计 DP 状态,设 \(f_{i,j}\) 表示看到第 \( 阅读全文
posted @ 2025-11-07 20:34 GuoSN0410 阅读(4) 评论(0) 推荐(0)
摘要: T1 CCF 你是人!这么爱考贪心。 去年 NOIP 就因为贪心挂到 40 pts。 但好在这次看到 \(\frac{n}{2}\),立刻就想到艾米娅家的饭,于是 20min 就场切了。 T2 一眼性质,然后写了个 80pts 的暴力,算了算复杂度好像过不了,瓶颈在排序,于是想到折半预处理,我写写写 阅读全文
posted @ 2025-11-03 09:42 GuoSN0410 阅读(10) 评论(0) 推荐(0)
摘要: 简介 我们还可以在并查集的边上定义某种权值和这种权值在路径压缩时产生的运算,从而解决更多的问题。也称为「种类并查集」或「拓展域并查集」。 实现 为了维护并查集中的边权,需要将边权下放到子节点中存储。因此,每个节点存储的都是它到它的父节点之间的边权。只有当一个节点的父节点发生变化时,才需要相应地调整边 阅读全文
posted @ 2025-10-30 10:12 GuoSN0410 阅读(13) 评论(0) 推荐(0)
摘要: 简介 第一篇串串学习笔记。 kmp 是一种高效的模式串匹配算法,可以在 \(O(n)\) 时间复杂度内利用字符串的 border 高效维护模式串 t 在模式串 s 中的出现位置等信息。 实现 给出 border 的定义:最长的出现在后缀中的前缀(不能是串本身)。 首先有一个性质:串 s 的非最长 b 阅读全文
posted @ 2025-10-29 14:47 GuoSN0410 阅读(7) 评论(0) 推荐(0)
摘要: 前置知识 啊嘿嘿,第三次学习 tarjan 终于是给我学明白了。 先来看一下 dfs 树上的三种边: 树边:从父亲连向儿子的边 返祖边:从儿子连向祖先的边 横叉边:除了前两种边之外的边 tarjan 算法中常用的两个数组: \(dfn_i\):表示 \(i\) 的时间戳,即第几个被遍历到 \(low 阅读全文
posted @ 2025-10-29 11:03 GuoSN0410 阅读(16) 评论(0) 推荐(0)
摘要: CF803F 场上死磕无法战胜,原来是个绿题吗哈哈。 考虑到跟序列的顺序无关,直接在值域上做。我们设 \(f_i\) 表示 \(\gcd = i\) 的方案数。那么有 \[f_i = 2^{g_i} - 1 - \sum_{i | d \land i \ne d} f_d \]\(g_i\) 是原序 阅读全文
posted @ 2025-09-12 16:31 GuoSN0410 阅读(8) 评论(0) 推荐(0)
摘要: 简介 manacher 算法,也称马拉车算法,可以在 \(O(n)\) 时间内,计算出字符串的极长回文子串。 实现 首先发现对于长度为偶数的回文串,它的回文中心可能在两个字符之间,所以为了方便,在每两个相邻字符之间添加一个 # 将所有回文串的长度转化为奇数。 记录几个变量: \(x\):表示遍历到当 阅读全文
posted @ 2025-09-02 16:32 GuoSN0410 阅读(12) 评论(0) 推荐(0)