
算法
文章平均质量分 96
算法的那些事
菜鸟级小乌龟
总:菜鸟一枚。
分:会c++javac#python,但我还是菜鸟。拿了NOIP一些奖项,但我依然是菜鸟。蓝桥杯python满分,但我依旧是菜鸟。对算法有一些了解,但我仍然是菜鸟。
总:我是菜鸟+蒟蒻。膜拜orz各位大佬。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
AC自动机
算法来源于贝尔实验室AC自动机首先ac自动机不是自动accept机器的意思自上一篇以来,我们知道了KMP算法。暂时还没有问题。直到有一天,突然又发现出来了个问题:我要在主串里面搜索多个模式串,这可怎么办啊?额,那就对于每一个模式串都跑一遍KMP呗那么灵魂拷问一下:时间复杂度?啊哈哈哈哈哈哈哈哈哈哈嗝假如有m个模式串,主串长度为n,那么时间复杂度:O(n×m)O(n\times m)O(n×m)(是不是似曾相识?对,就跟一个主串搜索一个模式串的蛮力算法的速度一个样)又来了,这么慢,,再见原创 2021-02-08 18:49:50 · 210 阅读 · 0 评论 -
c++字符串匹配之kmp
算法转载于:Knuth,Morris and Pratt写在前面:字符串匹配是要在主串里找模式串字符串匹配啊,在kmp之前,你会先想到什么?蛮力啊!!(一听就是超时の典型)很好,复杂度呢?O(n×m)O(n\times m)O(n×m)。不用说滴。燃鹅如果是随机的数据。它也会接近线性。假设范围是ascii和扩展,那么每一次匹配的第一次比较只有1256\frac{1}{256}2561的概率通过。。。燃鹅大部分情景不是随机的啊!!哈哈!蛮力算法再见吧!!<(  ̄^ ̄)(θ(θ☆( &g原创 2020-06-04 17:37:56 · 414 阅读 · 0 评论 -
python之逆元(数论倒数)
倒数想必大家都知道吧a的倒数是b,那么a×b=1a\times b=1a×b=1。那数论倒数呢?数论基本就是取模同余,应该也能猜到了吧在模p意义下,a的逆元是b,有a×b≡1(mod p)a\times b\equiv 1(mod\space p)a×b≡1(mod p)也就是a×ba\times ba×b可以是1,也可以是1+p,也可以是1+2p……注意:只有gcd(a,p)=1时才有解,也就是a和p互质。那么逆元怎么求呢?第一种:费马得意地笑着( •̀ ω •́ )✧原创 2020-06-03 16:54:53 · 2676 阅读 · 2 评论 -
python之(扩展)欧几里得
扩展欧几里得就是欧几里得的扩展,先说说欧几里得算法吧def gcd(a,b): if b == 0: return a else: return gcd(b,a%b)这段代码想必大家在熟悉不过了吧,,但是有没有想过为什么gcd(a,b)=gcd(b,a%b)?gcd(a,b)=gcd(a%b+(a//b)*b,b),先把a拆成两部分设a和b的最大公约数是res那么肯定a是res的倍数,b也是res的倍数(否则res怎么能称得上公约数?)那么(a//原创 2020-06-01 16:09:00 · 4668 阅读 · 0 评论 -
n皇后最快算法详解
n皇后问题再经典不过了,想必大家也听说过。再简单说一下吧,就是一个n*n的棋盘,放置n个皇后,使得竖着不攻击,横着不攻击,斜着不攻击。求有多少种方法。(国际象棋不是这么玩的呀 )向来网上都是经典的题目配经典的解法,用一个矩阵记录哪里放了,回溯一下,每一次遍历每一个皇后,判断会不会被攻击。。。然而,比蜗牛????还慢!!数据大一丁点,宇宙毁灭了都算不完,可见得有多慢啊!!复杂度为:O(nn)你说可怕不可怕刚刚算一个19皇后,就算神威·太湖之光也得算个差不多7个月,太可怕了!!(⊙o⊙)能不能原创 2020-05-28 16:28:30 · 3452 阅读 · 1 评论 -
c++之差分数组&最近公共祖先&树上差分
树上差分自己不算难(难的是天天爱跑步 )先说差分数组。这个玩意,就是差分数组里的每一个值等于原数组这个位置的值减去原数组这个位置前面的值,但差分数组第一个值等于原数组第一个值。估计童鞋们看不懂(◎﹏◎)为此,我特意准备了栗子<( ̄︶ ̄)↗[GO!]原数组a: 9 3 5 2 7差分数组b:9 -6 2 -3 5所以除了第一个特例,b[i]=a[i]-a[i-1]...原创 2019-09-14 09:20:17 · 659 阅读 · 0 评论 -
c++红黑树(小白慎入)
这一次我改用c++了,因为我嫌弃java没有指针。。。写在前面,网上有红黑树插入删除可视化模拟器,可以插入删除规定范围内的数,可以感受感受,尤其是删除https://sandbox.runjs.cn/show/2nngvn8w对于这个网址,亲测无效,不知道你读这篇文章的时候有没有效。链接:https://pan.baidu.com/s/1_c7juIdNxjBPBSqHDPT7uA提取码:4jcn这个是我自己上传的,也是从网上找到的,如果有差池,那可能是我上传的出错了。亲测有效。原创 2020-05-09 16:29:57 · 967 阅读 · 0 评论 -
python凸包问题
凸包问题什么是凸包?举个栗子吧有很多钉子,钉在木板上。拿根猴皮筋,拉的足够大。一松开,“啪”一声,现在的猴皮筋就是凸包凸包是什么或者说,让这根猴皮筋尽量小,同时能把所有的钉子包含在内。怎么求呢?先插一段:凸包属于计算几何,计算几何很大程度上基于一个东西,叫做叉积。而且主要用的是判断是在左边还是在右边,叉积>0在左,=0在中,<0在右。...原创 2020-04-01 08:57:44 · 2399 阅读 · 0 评论 -
java哈夫曼编码
哈夫曼编码有些童鞋有个大误区:哈夫曼编码其实不是一个统一的编码,只不过是编码设计算法而已啦!先说说编码电脑手机平板笔记本。。。这一类都是由进制(二)通讯的。就算所谓的基因计算机什么的,也是进制啊,只不过是4进制而已我们要传信,需要一边通过一个函数编码,传到另一边,再解码。我也无奈啊计算机只认识0和1,别的都不认识QwQ唵嘛嘛嘛嘛呢呢叭咪吽Huffman:0001010101011110...原创 2020-03-06 16:55:42 · 1232 阅读 · 1 评论