算法总结
文章平均质量分 64
寂静山林
这个作者很懒,什么都没留下…
展开
-
UVa 10045 Echo
秒),却仍难以通过,因此可以考虑使用记忆化技巧,即将搜索过程中遇到的状态的结果进行记录,在下一次遇到时,不必重复搜索,而是直接返回结果,这样会大幅提高效率(这个技巧与动态规划中的备忘技巧很相似,同样可以应用该技巧的题目是。题目中给出了两个条件,一个是“回显”的条件,该条件说的是对于输入的每个字符,均可以在字符串中找到一个相同的字符与之对应,注意,这里是一一对应,不能两个字符对应同一个字符,如果满足该条件,则称之为满足“回显”条件。,但由于被截断,因此不满足“回显”的条件,只满足“缓存长度为。原创 2023-07-13 11:19:37 · 180 阅读 · 0 评论 -
UVa 12916 Perfect Cyclic String
如果是逐个字符比较,可能会超时,将字符串散列后,可以快捷的获取某个子串的散列值,以此散列值来进行比对会大大提高效率。由于需要确定最小的周期字符串,那么对于长度为。本题可以通过字符串散列来予以解决。个字符一组进行比对,检查。,则从第一个字符开始,每。的字符串来说,可以从。原创 2023-07-11 09:36:09 · 156 阅读 · 0 评论 -
UVa 12897 Decoding Baby Boos
题目给定一系列的替换规则以及最终的字符串,要求解题者按照规则替换字符串,显然,对于每个字符逐一根据规则逆向还原会超时,因此需要考虑更高效的方法。个大写字母在逆向应用规则后与哪个字母相对应,确定对应关系后,则可以直接输出。考虑到是按照顺序逆向应用规则,那么只需确定在最终给出的字符串中。注意,不需要考虑替换结果的逻辑性,因为本题并不存在合理的逻辑。的字母所对应的字母即可,也就是说,根据规则,反向确定。本题是一道模拟题目。原创 2023-07-11 07:41:03 · 264 阅读 · 0 评论 -
UVa 11400 Lighting System Design
是类似的,属于重复的子问题,因此可以使用动态规划中的备忘技巧(将递归中已解决子问题的结果使用表格予以记录,当再次遇到此子问题时,直接查表获得结果),使用递归予以解决。显然,电压最高的灯泡必须选择,因为没有其他灯泡可以代替它们。那么对于不是最高电压的灯泡,可以选,也可以不选,如果不选,可以使用更高电压的灯泡来替换。题目允许使用具有更高适配电压的灯泡来替换较低适配电压的灯泡,直觉就是先将灯泡按照适配电压的高低递增排列,然后进行选择。类灯泡,可以选择或者不选,假定在第。类灯泡中,最后一次选择的是第。原创 2023-07-11 07:40:25 · 111 阅读 · 0 评论 -
字符串散列
当两个不同的字符串依据上述方法转换得到的散列值相同时,称之为冲突(collide),为了尽量减少冲突出现的概率,可以使用两组(甚至多组)基数和模数,得到两个不同的散列值,将之配对来表示字符串的映射值,这样冲突的概率非常小。字符串散列(string hash,又称字符串哈希)是指在字符串和数值之间建立对应关系,相当于为字符串创建“指纹”。存在非常多的散列算法,下面介绍通过模运算实现的一种简易散列算法。有时并不需要获取整个字符串的散列值,而只需获取字符串某一部分的散列值,那么可以通过类似于前缀和的技巧来获取。原创 2023-07-11 07:36:57 · 206 阅读 · 0 评论 -
我编写的书已经出版
第一卷:程序设计竞赛训练营:基础概念与数学第二卷:程序设计竞赛训练营:算法与实践原创 2022-03-24 17:11:25 · 1600 阅读 · 2 评论 -
回复读者提问:位标记在素数筛中的应用
在编程竞赛中,如果要求确定某一范围内的素数,一个常用的方法是使用素数筛。在使用素数筛的过程中,需要记录某个数是否是素数,常见的方法是使用一个整数数组来记录,例如:const int MAXN = 10000010;int primes[MAXN], cnt;void sieve(){ for (int i = 2; i < MAXN; i++) { if (primes[i]) continue; primes[cnt++] = i; for (int j = i + i;原创 2020-11-28 07:59:34 · 322 阅读 · 0 评论 -
关于半平面交问题
原帖地址。先说点题外话。因为我是学医的(我专业是临床医学而不是计算机科学),在大三(有可能是大四,具体由于时间比较久,记不清楚了)的时候,老师教授《病理生理学》,这门课的目的是了解人体在疾病状态下组织和细胞所呈现的形态。但奇怪的是,老师在最初的几周并不给我们看疾病状态的组织和细胞的切片,而是反复给我们看正常情形下人体组织的细胞切片(比如肝细胞、上皮细胞等)。我们很纳闷,不禁向老师提出疑问。老师解释说,给你们看正常情形下的切片是为了让你们熟悉正常情况下人体的细胞是什么样子,当你们对正常情况的细胞是什么样子了原创 2020-06-20 22:37:15 · 827 阅读 · 1 评论 -
第10章 图算法 10.5 网络流问题
原创 2020-06-04 20:24:41 · 359 阅读 · 0 评论 -
第2章 数据结构:2.11.1 线段树
原创 2020-06-03 17:21:19 · 314 阅读 · 0 评论 -
第3章 字符串:3.5.5 最长重复子串
原创 2020-06-02 10:38:12 · 249 阅读 · 0 评论 -
第3章 字符串:3.5.4 最长公共子串
原创 2020-06-02 10:35:20 · 251 阅读 · 0 评论 -
第3章 字符串:3.5.3 后缀数组
原创 2020-06-01 23:09:11 · 269 阅读 · 0 评论 -
第3章 字符串:3.5.2 Aho-Corasick算法
原创 2020-06-01 23:00:47 · 231 阅读 · 0 评论 -
UVa 10689 Yet Another Number Sequence
题目定义如下的序列:f(0)=af(0)=af(0)=a f(1)=bf(1)=bf(1)=b f(n)=f(n−1)+f(n−2),n>1f(n)=f(n-1)+f(n-2),n>1f(n)=f(n−1)+f(n−2),n>1如果 a=0a=0a=0,b=1b=1b=1,则序列为斐波那契序列(Fibonacci Sequence),如果 aaa 和 bbb 为其他值,则可以得到其他的序列。你的任务是在给定 aaa 和 bbb 的值之后,确定 f(n)f(n)f(n) 的最后 mmm原创 2020-06-01 08:10:28 · 270 阅读 · 0 评论 -
第6章 组合数学:6.7.1 斐波那契数
原创 2020-06-01 07:10:02 · 364 阅读 · 0 评论 -
第13章 几何:13.6.5 最小圆覆盖
原创 2020-05-31 20:32:19 · 196 阅读 · 1 评论 -
第3章 字符串:3.5.1 Trie
原创 2020-05-28 13:15:19 · 175 阅读 · 0 评论 -
第14章 计算几何:14.5 凸包
原创 2020-05-27 06:48:37 · 205 阅读 · 0 评论 -
第14章 计算几何:14.5 坐标离散化
原创 2020-05-27 06:44:52 · 200 阅读 · 0 评论 -
11990 Dynamic Inversion(动态逆序对)
UVa 11990 Dynamic Inversion(动态逆序对)给定 {1,2,3,…,n}\{1,2,3,…,n\}{1,2,3,…,n} 的一个排列,从排列中每次删除一个数字,共删除 mmm 个数字,在每次删除数字之前输出该排列的逆序对数。数组 AAA 的逆序对数定义为二元组(iii,jjj)的数量:i<ji<ji<j 且 A[i]>A[j]A[i]>A[j]A[i]>A[j]。输入输入包含多组测试数据。每组测试数据的第一行包含两个整数 nnn 和 m(1≤原创 2020-05-25 16:23:24 · 551 阅读 · 0 评论 -
第二章 数据结构:2.10 二叉树
原创 2020-05-22 15:26:56 · 212 阅读 · 0 评论 -
第一章 入门:1.3 格式化输出
原创 2020-05-22 06:53:44 · 190 阅读 · 0 评论 -
第一章 入门:1.2 格式化输入
原创 2020-05-22 06:50:02 · 282 阅读 · 0 评论 -
第一章 入门:1.1 基本数据类型
原创 2020-05-22 06:47:15 · 205 阅读 · 0 评论 -
第二章 数据结构:2.1.4 约瑟夫问题
原创 2020-05-21 23:14:48 · 208 阅读 · 0 评论 -
强连通分支和半连通分支
原创 2020-05-21 15:05:40 · 628 阅读 · 1 评论 -
第K短路径问题
第 KKK 短路径(the K Shortest Path,KSP)问题是对最短路径问题的扩展。众所周知,使用 DijsktraDijsktraDijsktra 算法能够确定最短路径,但是在某些情形下,我们除了想知道最短路径外,还想知道次短路径、第三短路径等等[1]。一个现实中的例子就是在使用“高德地图”的时候,需要从某个出发点到达一个目标点,在查询驾车路线时,“高德地图”一般会给出三条候选路径,一条路径具有最少的行车时间,一条具有最短的行车距离,另外一条是备用路线,这三条路径可能具有不同的路径长度,“高德原创 2020-05-21 08:59:09 · 4336 阅读 · 1 评论 -
布尔适定性问题(2-SAT)
原创 2020-05-21 08:54:56 · 401 阅读 · 0 评论 -
如何高效地使用 UVa OJ 来进行练习?
由于UVa OJ的创建者Miguel Ángel Revilla教授已于2018年4月去世,而且UVa OJ过于老旧,兼之又是国外网站,打开非常缓慢,导致练习时阅读题目非常不便。不过由于国内IOI和ACM/ICPC的逐渐普及,有许多手段可以缓解这种情况,以下介绍三种方法。(1)UVa Arena(https://github.com/dipu-bd/UVA-Arena)。一款由编程爱好者Sudipto Chandra Dipu开发的软件,专门用来支持UVa OJ,可以通过此软件一次性下载UVa OJ上的所原创 2020-11-01 12:25:46 · 9567 阅读 · 6 评论 -
UVa Online Judge的重建
2018年7月,在与uDebug网站管理员Vinit Shah就UVa 12348 Fun Coloring的评测问题进行电子邮件交流的过程中,遗憾得知Miguel Ángel Revilla教授已于2018年4月去世(未见官方发布的讣告,故去世原因不详,参见搜索得到的一个网上讣告:https://www.rememori.com/1018994:miguel_angel_revilla_ramo...原创 2020-03-30 09:46:34 · 2242 阅读 · 0 评论 -
Github上的解题代码以及正在写的书......
https://github.com/metaphysis/Code,UVa Online Judge volume001-volume010的部分解题代码,正在不断完善中。这些是我正在写的一本书《C++,挑战编程——程序设计竞赛进阶训练指南》的一部分。...原创 2017-02-21 21:57:44 · 3726 阅读 · 0 评论 -
UVa OJ 第32名,留个纪念。
原创 2018-01-30 22:43:40 · 1831 阅读 · 0 评论 -
《挑战编程:程序设计竞赛训练手册》- 题解(第一章 - 第八章)
PC = Programming Challenges (http://www.programming-challenges.com/)UVa = University of Valladolid Online Judge(http://uva.onlinejudge.org/)《挑战编程:程序设计竞赛训练手册》PDF下载地址(英文版):http://acm.cs.buap.mx/do原创 2011-08-28 17:24:12 · 23559 阅读 · 21 评论 -
《挑战编程:程序设计竞赛训练手册》- 题解(全)
PC = Programming Challenges (http://www.programming-challenges.com/)UVa = University of Valladolid Online Judge(http://uva.onlinejudge.org/)《挑战编程:程序设计竞赛训练手册》PDF下载地址(英文版):http://acm.cs.buap.mx原创 2011-11-16 22:06:17 · 15318 阅读 · 10 评论 -
再次提交 UVA 10137 The Trip WA 非常奇怪 希望网友能指出错误
// The Trip (旅行)// PC/UVa IDs: 110103/10137, Popularity: B, Success rate: average Level: 1// Verdict: Wrong Answer// Submission Date: 2014-02-16// UVa Run Time: N/A//// 版权所有(C)2014,邱秋。metaphysis原创 2014-02-16 09:43:14 · 4060 阅读 · 3 评论 -
PC 的 110704 和 UVa 上的 10139 提交结果
原创 2013-05-30 14:25:10 · 3569 阅读 · 0 评论