摘要: 用处 在很多情况下,我们很难想到一道题目的正解,这时候,,我们不应什么都不干,我们可以骗分! 随机化——一种最常用的骗分方式,而且它在大部分情况下只要使用方式正确,就能获得非常高的部分分,有时甚至能骗过整道题 分类 我所知道的随机化算法大致分三种,分别是纯随机、爬山算法与模拟退火算法 纯随机 纯随机 阅读全文
posted @ 2024-11-29 15:42 Torrentolf 阅读(209) 评论(0) 推荐(0)
摘要: 引入 先介绍一下大家熟知的差分约束问题,通过建图将线性规划问题转化为图论问题。 给定多个形如\(a_i - a_j \geq c_{i , j}\)的不定式,找出一种可行解。 这种问题有一种很巧妙的构造方法,就是将这类问题抽象成一个图论问题来解决。 具体来说,就是将不等式移项,变为\(a_i \ge 阅读全文
posted @ 2024-11-29 11:56 Torrentolf 阅读(162) 评论(0) 推荐(0)
摘要: \(Floyd\)算法 \(Floyd\)算法应该算是所有最短路求法中最简单的一种,但是也是最暴力的,它只能用于求全源最短路,基本思路是先枚举中转点,再计算以该点为中转点时两点之间的距离,并更新,复杂度为\(O(n^3)\)。 代码: void Floyd() { for(int k = 1 ; k 阅读全文
posted @ 2024-11-28 22:05 Torrentolf 阅读(172) 评论(0) 推荐(0)
摘要: 问题提出 给定你一个字符串,有\(n\) 次询问,每次给出两个数\(a\),\(b\),希望求出该字符串以\(a\),\(b\)下标结尾的两段前缀的最长公共\(border\)。(一个字符串的\(border\)同时为其后缀与前缀) 初步分析 首先我们需要考虑一个字符串的最长\(border\)求法 阅读全文
posted @ 2024-11-25 22:05 Torrentolf 阅读(163) 评论(0) 推荐(0)
摘要: 定义 将一个字符串映射至一个整数\(w\)后称\(w\)为该字符串的\(hash\)值。 性质 对于一个固定的字符串,其在使用相同\(hash\)生成方式下得到的\(hash\)值唯一,而且对于每一个固定的\(hash\)值,其所对应的字符串在很大概率下是唯一的,因此我们在求出字符串的\(hash\ 阅读全文
posted @ 2024-11-24 21:58 Torrentolf 阅读(445) 评论(0) 推荐(0)
摘要: 引入 众所周知,\(manacher\)算法可以在\(O(n)\)的时间复杂度内求出一个字符串的最长回文子串长度,但是\(manacher\)算法对于初学者来说并不是很好理解(至少我是这么认为的),因此我们考虑有没有什么更好理解的方式求出一个字符串的最长回文子串。 关于字符串哈希 字符串哈希是一种非 阅读全文
posted @ 2024-11-22 22:01 Torrentolf 阅读(370) 评论(0) 推荐(0)
摘要: 使用原因 有些题目会比较毒瘤,出现很大的输入输出量,通过超快读,我们可以十分有效地缩短输入用时,为程序后面的操作预留出更多的时间,而对于超快写,可以防止自己的程序在输出量极大时超时。 普通快读与快写 考虑C++中的\(getchar\)函数的读入效率比较高,所以我们可以使用其将数字一位一位地读入,而 阅读全文
posted @ 2024-11-22 17:56 Torrentolf 阅读(541) 评论(0) 推荐(1)
摘要: 题意分析 给定一棵树,定义树上一个点的权值为它染的不同颜色的个数(一个点会有多种颜色) 你需要支持两种操作: 将\(x\)的子树全部染上(添加)某种颜色 查询给定\(x\)的子树内的所有点的权值之和 考场思路 对于每一个点直接使用\(set\)记录其染上的颜色,并在修改时记录每一个点的子树权值后缀和 阅读全文
posted @ 2024-11-21 20:48 Torrentolf 阅读(13) 评论(0) 推荐(0)
摘要: 考场思路 考虑要动态维护最大值,可以直接使用优先队列进行维护,但是,考虑到我们并不好直接修改优先队列中的每一个元素,所以决定使用 vector 先排一遍序,再使用冒泡排序进行动态维护,时间复杂度\(O(mn)\),可以拿 35pts 。 代码 #include<iostream> #include< 阅读全文
posted @ 2024-11-21 19:17 Torrentolf 阅读(45) 评论(0) 推荐(0)
摘要: 题意分析 给出一个矩阵,要求每行只能选一个节点,每列选的节点不能超过所有选的节点的一半,不能不选,给出每个节点的选择方案数,求总方案数 考场思路 考虑暴力枚举每一个点的选择情况,最后统计答案。 对于行: 但是因为有每一行只能选择一个的限制,所以考虑当前行选择一个后直接转跳到下一行。 对于每一个点大小 阅读全文
posted @ 2024-11-21 19:16 Torrentolf 阅读(40) 评论(0) 推荐(0)