算法
文章平均质量分 83
席懿
这个作者很懒,什么都没留下…
展开
-
简单散列表例题和简单DFS例题
P1056排座椅点击查看题目描述该题运用了散列表的思想对数据进行存储什么是散列表?散列表(Hash table,也叫哈希表),是根据键(Key)而直接访问在内存存储位置的数据结构。也就是说,它通过计算一个关于键值的函数,将所需查询的数据映射到表中一个位置来访问记录,这加快了查找速度。这个映射函数称做散列函数,存放记录的数组称做散列表。 ——维基百科若关键...原创 2019-07-13 10:00:43 · 770 阅读 · 0 评论 -
洛谷训练(3)时间复杂度分析、欧拉筛法求素数、next_permuatation()、sort()
一、时间复杂度分析在ACM比赛中,每道题都对时间和空间大小进行了限制。 有时不惜用空间换时间的方法来使题目AC。1. 只关注循环执行次数最多的一段代码int cal(int n) {int sum = 0;int i = 1;for (; i <= n; ++i) {sum = sum + i;}return sum;}其中第2、 3行代码都是常量级的执行时间,与...原创 2019-07-05 09:24:14 · 1434 阅读 · 0 评论 -
KMP字符串匹配算法
KMP字符串匹配算法以往字符串匹配我都是直接暴力匹配(时间复杂度O(mn)),最近学习了KMP算法,只想说KMP杀我KMP是出了名的难懂,各种博客上的算法思想都大同小异,只是实现代码有些不同KMP算法的关键是利用匹配失败后的信息,尽量减少模式串与主串的匹配次数以达到快速匹配的目的具体实现的关键是找到next[]数组,数组本身包含了模式串的局部匹配信息时间复杂度O(m+n)先不管nex...原创 2019-07-10 16:54:56 · 251 阅读 · 0 评论 -
洛谷训练(4)P1022 计算器的改良、P1003铺地毯、P1464 Function
P1022 计算器的改良主要思路首先明确:所有的一元一次方程都可化为kx+b=0的形式,即可得到x=-b/k采用string存储输入的方程要注意多位整数的处理一旦遇到符号,前面的整数就累加进b;遇到字母,整数累加进k;特别注意最后一位整数要单独处理#include<bits/stdc++.h>using namespace std;//最终化成kx+b=0;...原创 2019-07-06 09:19:31 · 169 阅读 · 0 评论