![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
algorithm
文章平均质量分 78
inCorning
In the meanwhile I smile and I sing all alone.
展开
-
刷题-面试准备
刷题时仍然觉得C++比python方便(索引等),但记不住那些函数语法……——待补list1.reverse(),将list1翻转sorted(list1, key=lambda x:x[0], reverse=True). 不知道如何能考虑两个因素进行排序,比如[0]=是比较[1],笨办法是:[0]*1000+[1]——待补现在觉得这些语法挺有道理,不知道为什么当时记不住也不愿意记int x;int * p1 = &x; // 指针可以被修改,值也可以被修改const int * .原创 2021-05-23 01:23:55 · 418 阅读 · 4 评论 -
二维码的生成细节和原理
<p>二维码又称QR Code,QR全称Quick Response,是一个近几年来移动设备上超流行的一种编码方式,它比传统的Bar Code条形码能存更多的信息,也能表示更多的数据类型:比如:字符,数字,日文,中文等等。这两天学习了一下二维码图片生成的相关细节,觉得这个玩意就是一个密码算法,在此写一这篇文章 ,揭露一下。供好学的人一同学习之。</p>关于QR Code Specification,可参看这个PDF:http://raidenii.net/files/da...转载 2021-01-29 09:49:59 · 182 阅读 · 0 评论 -
[DL笔记] Attention机制
本文主要对Attention机制进行了简单的介绍。1. 介绍(1)人脑对信息的过滤其实就是一种注意力机制。注意力机制一般分为两种:聚焦式(Focus)注意力:是一种自上而下的有意识的注意力;显著性(Saliency-Based)注意力:是一种自下而上的无意识的注意力。(2)目前的神经网络中,可以将 池化(max pooling)、门控(Gating) 近似看作是自下而上的基于显著性的注意力机制;而接下来描述的则是自上而下的聚焦式注意力机制。(3)注意力分布: 为了从个输入向量中选择出和某个特定任务相关的信息转载 2021-01-27 12:38:18 · 598 阅读 · 0 评论 -
博客链接记录
关于LSTM的原理:http://colah.github.io/posts/2015-08-Understanding-LSTMs/原创 2020-12-10 11:52:12 · 213 阅读 · 0 评论 -
计算机网络:IPV4协议收发实验
IPV4协议收发实验实验目的 根据计算机网络实验系统所提供的上下层接口函数和协议中分组收发 的主要流程,设计实现一个简单的 IPv4 分组收发模块。 要求实现的主 要功能包括: 1) IPv4 分组的基本接收处理;包括:检查目的地址是否为本地地址,并检查 IPv4 分组头部中其它字段的合法性。提交正确的分组给上层协议继续处理,丢弃错误的分组并说明错误类型 2) IPv4 分组的封装发送;包括:根据上层协议所提供的参数(存活时间、源地址、目标地址等)来填充,并计算校验和,封装 IPv4原创 2021-01-07 13:54:19 · 2308 阅读 · 0 评论 -
神经机器翻译中有用的技巧
本篇总结神经机器翻译的实践中,较为基础的最佳实践。应该使用哪个模型作为基线Transformer是2017年发布的模型,即使到2020年仍然是比较好的基线模型,大热的BERT就是其升级版。代码地址Fairseq这里实际推荐比较使用Fairseq指定arch为Transformer,按照官方教程直接就可以跑起来。为了便于理解和快速使用Fairseq,也可以浏览一些中文博客:利用Fairseq训练新的机器翻译模型 - 冬色 - 博客园,Fairseq-快速可扩展的序列建模工具包 - 冬色...转载 2020-11-05 20:15:21 · 792 阅读 · 0 评论 -
深入理解NLP Subword算法:BPE、WordPiece、ULM
CHANGLOG4/18/2020,规范化引用3/27/2020,新增目录。前言Subword算法如今已经成为了一个重要的NLP模型性能提升方法。自从2018年BERT横空出世横扫NLP界各大排行榜之后,各路预训练语言模型如同雨后春笋般涌现,其中Subword算法在其中已经成为标配。所以作为NLP界从业者,有必要了解下Subword算法的原理。目录与传统空格分隔tokenization技术的对比Byte Pair EncodingWordPieceUnigram Language Model总结1. 与传统转载 2020-11-04 23:24:39 · 982 阅读 · 0 评论 -
带有限期的作业排序:很随便的算法学习
应某人要求,复述题意而非直接copy:n个作业,持续时间均为1,每个作业截止时间为di, 收益为vi求一个算法使之可行收益最大下面算法均为贪心,都需要先对收益排序。现在认为已经完成。来自百度文库:先优先满足收益大的作业,优先最先完成。之后加入下一个作业,根据截止时间,进行类似插入排序。之后验证是否满足。O(n^2)自思:优先满足收益最大作业,尽量最迟完成,然后加入下一个作业,类似哈希,不过是向前寻找。O(n^2)课件:在2的基础上加一个并查集,每一位的指针指向的父节点为当前最晚的可用时间。O(原创 2020-06-12 21:38:30 · 1160 阅读 · 2 评论 -
最少字符填充成回文子串:第一次记事本编程+命令行调试
原题如图题目三:主要思路:枚举回文对称轴,有字符轴和间隔周两种情况(分别对应恢复后的回文串为奇数还是偶数的情况。之后动态规划,f[i][j] = min(f[i-1][j]+f[i][j-1]) + 1-----s[i]和s[j]不等若相等,则直接f[i][j]=f[i-1][j-1]思路很简单,最后时间都花在了边界条件的确定上。由于第一次用记事本编程,一些语法错误也不能很快的找到,也不能设断点之类的(可以,但目前不会。。)所以花费了很长时间首先是f[0][0]的初始化,应该是2其次是f[0原创 2020-06-17 09:33:27 · 263 阅读 · 0 评论 -
Kernel Regression for Image Processing and Reconstruction(2007)论文笔记
摘要:本文调整并扩展了内核回归思想,用于图像去噪,放大,插值,融合等等。本文与一些流行的现有方法建立了关键关系,并展示了几种这些算法(包括最近普及的双边滤波器)是如何构建框架的特例。概述:本文主要研究核回归方法,来试图恢复由于成像系统的限制而破坏了的无噪的高频信息,还有退化过程,比如说压缩。我们研究回归,不仅用于插值定期采样帧(上采样),还用于恢复和增强噪声和可能不规则采样的图像。如图1所示,1a表示每个方向上将图像...转载 2020-05-20 00:44:47 · 850 阅读 · 0 评论 -
Mathematical Analysis of Algorithms论文笔记
这是Knuth 的一篇论文,原文下载在这里有:http://download.csdn.net/detail/u013012544/6982095,是北京大学本科生算法设计与分析2014年春季课程的必读论文之一。以下是它的全文翻译:(我的翻译通常采用:达、信、永远不雅的原则...即通常宁可说错话不说人看不懂的话,并且从不考虑所谓的雅,通俗易懂即可...)算法的数学性分析这是...转载 2020-05-18 23:40:45 · 1615 阅读 · 0 评论 -
空域、频域、时域的解释
基本概念:空间域:(spatial domain)也叫空域,即所说的像素域,在空域的处理就是在像素级的处理,如在像素级的图像叠加。通过傅立叶变换后,得到的是图像的频谱。表示图像的能量梯度。频率域:(frequency domain。)任何一个波形都可以分解用多个正弦波之和。每个正弦波都有自己的频率和振幅。所以任意一个波形信号有自己的频率和振幅的集合。频率域说的就是这个。频率域就是空间域经过傅立叶变换的信号时域(时间域)——自变量是时间,即横轴是时间,纵轴是信号的变化。其动态信号x(t)原创 2020-05-13 15:14:40 · 3843 阅读 · 0 评论 -
BM3D学习笔记(很基础)
算法流程框架:https://blog.csdn.net/weixin_45250844/article/details/103153155其中名词解释及数学推导:离散余弦变换:https://www.jianshu.com/p/b923cd47ac4a原创 2020-05-13 15:13:27 · 480 阅读 · 0 评论 -
添加高斯噪声&椒盐噪声并进行去噪(附代码)
最近交了数图作业,mark一下。1.添加高斯噪声...转载 2020-05-06 21:11:25 · 9568 阅读 · 4 评论 -
openjudge:败方树
2:败方树查看提交统计提问总时间限制: 1000ms 内存限制: 65536kB描述给定一个整数数组,要求对数组中的元素构建败方树(数组相邻元素两两比较,从第一个元素开始)。之后修改数组中的元素,要求输出初始构建以及修改后得到的败方树的所有内部结点代表的整数(从左到右从上到下输出)输入第一行为数组的元素个数n和修改的次数m。第二行为n个整数,即数组的元素。接下来m行代表m次修改操作...原创 2020-01-01 22:15:44 · 369 阅读 · 0 评论 -
openjudge:置换选择排序
1:置换选择排序查看提交统计提问总时间限制: 1000ms 内存限制: 65536kB描述给定初始整数顺串,以及大小固定并且初始元素已知的二叉最小堆(为完全二叉树或类似完全二叉树,且父元素键值总小于等于任何一个子结点的键值),要求利用堆实现置换选择排序,并输出第一个顺串。例如给定初始顺串29,14,35,13,以及堆(记为16 19 31 25 21 56 40), 置换选择排序得到的第一...原创 2020-01-01 21:28:29 · 788 阅读 · 0 评论 -
伸展树
伸展树,或者叫自适应查找树,是一种用于保存有序集合的简单高效的数据结构。伸展树实质上是一个二叉查找树。允许查找,插入,删除,删除最小,删除最大,分割,合并等许多操作,这些操作的时间复杂度为O(logN)。由于伸展树可以适应需求序列,因此他们的性能在实际应用中更优秀。伸展树支持所有的二叉树操作。伸展树不保证最坏情况下的时间复杂度为O(logN)。伸展树的时间复杂度边界是均摊的。尽管一个单独的操作可...转载 2019-12-31 21:27:39 · 186 阅读 · 0 评论 -
后缀树&后缀数组&LCP
后缀树:字符串匹配算法一般都分为两个步骤,一预处理,二匹配。KMP和AC自动机都是对模式串进行预处理,后缀树和后缀数组则是对文本串进行预处理。后缀树的性质:存储所有 n(n-1)/2 个后缀需要 O(n) 的空间,n 为的文本(Text)的长度;构建后缀树需要 O(dn) 的时间,d 为字符集的长度(alphabet);对模式(Pattern)的查询需要 O(dm) 时间,...转载 2019-12-31 17:51:24 · 1324 阅读 · 0 评论 -
高级数据结构:广义表(期末拾遗)
广义表的深度:近似于形成树的高度,表面上就是查左括号的个数长度:元素的个数,元素指的是相对于表面的表而言(元素也可以是表)原创 2019-12-31 17:08:58 · 426 阅读 · 0 评论 -
poj 3264 Balanced Lineup线段树
Language:Balanced LineupTime Limit: 5000MS Memory Limit: 65536KTotal Submissions: 77771 Accepted: 35567Case Time Limit: 2000MSDescriptionFor the daily milking, Farmer John’s N cows (1 ≤ N ≤ 50...原创 2019-12-28 22:53:22 · 166 阅读 · 0 评论 -
open judge Freda的越野跑
1:Freda的越野跑查看提交统计提问总时间限制: 1000ms 内存限制: 262144kB描述Freda报名参加了学校的越野跑。越野跑共有N人参加,在一条笔直的道路上进行。这N个人在起点处站成一列,相邻两个人之间保持一定的间距。比赛开始后,这N个人同时沿着道路向相同的方向跑去。换句话说,这N个人可以看作x轴上的N个点,在比赛开始后,它们同时向x轴正方向移动。假设越野跑的距离足够远,这N个人的...原创 2019-12-23 19:08:22 · 379 阅读 · 0 评论 -
poj apple tree
#include <iostream>#include <cstdio>#include <vector>using namespace std;const int ns = 100005;int c[ns];int p[ns];int mystart[ns], myend[ns];bool vis[ns];vector<int> ...原创 2019-12-20 22:18:45 · 133 阅读 · 0 评论 -
poj cube stacking
#include <cstring>#include <iostream>using namespace std;int parent[30005];int sum[30005];int getroot(int a){ if (parent[a] != a) { int ra = getroot(parent[a]); ...原创 2019-12-20 22:18:06 · 89 阅读 · 0 评论 -
poj the suspects
#include <iostream>#include <cstring>using namespace std;int parent[30005];int getroot(int a){ if(parent[a] != a) { parent[a] = getroot(parent[a]); } return pa...原创 2019-12-20 22:17:32 · 134 阅读 · 0 评论 -
图解B+树的插入和删除(一看就懂)
图解B+树的插入和删除(一看就懂)一, M阶B+树的定义(M阶是指一个节点最多能拥有的孩子数,M>2):图1.1 3阶B+树 &...转载 2019-12-20 11:48:45 · 741 阅读 · 0 评论 -
高级数据结构:最近餐馆
3:最近餐馆查看提交统计提问总时间限制: 5000ms 内存限制: 98304kB描述每到饭点,就又到了一日几度的小L纠结去哪吃饭的时候了。因为有太多太多好吃的地方可以去吃,而小L又比较懒不想走太远,所以小L会先找到距离他最近的M家餐馆然后再做筛选。小L现在所在的位置和每家餐馆的位置用同一笛卡尔坐标系中的点表示,而点与点之间的距离为欧几里得距离,对于点p = (p1, p2,…, pn)...原创 2019-12-18 20:52:18 · 793 阅读 · 0 评论 -
优先队列:促销活动
4:促销活动查看提交统计提问总时间限制: 6000ms 内存限制: 65536kB描述Great Bytelandish超市联盟想请你编写一个程序模拟计算促销活动的开销促销活动遵守以下规则:参加促销活动的客户,可以在消费结束后将自己的消费账单投入一个指定的投票箱里当一天的促销活动结束时,将从投票箱中选出两份账单:一份是消费金额最大的账单,一份是消费金额最小的账单。最大金额账单对应的客...原创 2019-12-18 19:23:40 · 192 阅读 · 0 评论 -
张铭-mooc-数据结构与算法-索引测验答案
原创 2019-12-18 16:07:43 · 1811 阅读 · 0 评论 -
多分树静态索引
什么是静态索引?生成时间:文件创建、初始装入记录时生成不可改变:一旦生成就固定下来,在系统运行(例如、删记录)过程中索引结构并不改变,只有当文件再组织时才允许改变索引结构什么叫“文件再组织”?特点:组织索引一般不用二叉树而采用多分树(粒度变粗),能大幅减少访问外存的次数什么是多分树?多分树是由二叉树进化而来的访问一个叶结点查找二叉树:访问六次外存(层数:6)查找多分树:访问两次外...原创 2019-12-18 15:13:08 · 602 阅读 · 0 评论 -
红黑树详细分析(个人感觉很详细的一个)
1.红黑树简介红黑树是一种自平衡的二叉查找树,是一种高效的查找树。它是由 Rudolf Bayer 于1972年发明,在当时被称为对称二叉 B 树(symmetric binary B-trees)。后来,在1978年被 Leo J. Guibas 和 Robert Sedgewick 修改为如今的红黑树。红黑树具有良好的效率,它可在 O(logN) 时间内完成查找、增加、删除等操作...转载 2019-12-18 13:16:51 · 185 阅读 · 2 评论 -
数据结构与算法:倒排索引
1:倒排索引查看提交统计提问总时间限制: 1000ms 内存限制: 131072kB描述给定一些文档,要求求出某些单词的倒排表。对于一个单词,它的倒排表的内容为出现这个单词的文档编号。输入第一行包含一个数N,1 <= N <= 1000,表示文档数。接下来N行,每行第一个数ci,表示第i个文档的单词数。接下来跟着ci个用空格隔开的单词,表示第i个文档包含的单词。文档从1...原创 2019-12-17 17:17:34 · 1563 阅读 · 0 评论 -
计算几何:Most Distant Point from the Sea(半平面交)
001:Most Distant Point from the Sea查看提交统计提问总时间限制: 5000ms 内存限制: 65536kB描述The main land of Japan called Honshu is an island surrounded by the sea. In such an island, it is natural to ask a question:...原创 2019-12-17 17:16:38 · 264 阅读 · 0 评论 -
计算几何:poj 1228 Grandpa's Estate
002:Grandpa’s Estate查看提交统计提问总时间限制: 1000ms 内存限制: 65536kB描述Being the only living descendant of his grandfather, Kamran the Believer inherited all of the grandpa’s belongings. The most valuable one w...原创 2019-12-14 20:57:41 · 197 阅读 · 0 评论 -
计算几何:poj 1039 pipe
001:Pipe查看提交统计提问总时间限制: 1000ms 内存限制: 65536kB描述The GX Light Pipeline Company started to prepare bent pipes for the new transgalactic light pipeline. During the design phase of the new pipe shape the...原创 2019-12-14 12:37:17 · 187 阅读 · 0 评论 -
数据结构与算法:检索(详细笔记)
原创 2019-12-10 13:31:25 · 233 阅读 · 0 评论 -
数据结构:C语言实现构建哈夫曼树
1、路径和路径长度在一棵树中,从一个结点往下可以达到的孩子或孙子结点之间的通路,称为路径。通路中分支的数目称为路径长度。若规定根结点的层数为1,则从根结点到第L层结点的路径长度为L-1。2、结点的权及带权路径长度若将树中结点赋给一个有着某种含义的数值,则这个数值称为该结点的权。结点的带权路径长度为:从根结点到该结点之间的路径长度与该结点的权的乘积。3、树的带权路径长度树的带权路径长度规定...转载 2019-12-09 22:10:11 · 252 阅读 · 0 评论 -
计算几何:Myacm Triangles
002:Myacm Triangles查看提交统计提问总时间限制: 1000ms 内存限制: 65536kB描述There has been considerable archeological work on the ancient Myacm culture. Many artifacts have been found in what have been called power f...原创 2019-12-06 16:56:28 · 233 阅读 · 0 评论 -
计算几何:Intersecting Lines(不优雅)
001:Intersecting Lines查看提交统计提问总时间限制: 1000ms 内存限制: 65536kB描述We all know that a pair of distinct points on a plane defines a line and that a pair of lines on a plane will intersect in one of three w...原创 2019-12-06 15:25:38 · 180 阅读 · 0 评论 -
计算几何模板(修改版)
#include <cmath>#include <iostream>#include <string>using namespace std;struct CVector{ double x, y; CVector(double xx, double yy) { x = xx; y = yy;...原创 2019-12-06 13:04:33 · 83 阅读 · 0 评论 -
计算几何模板
class CVector{ double x, y;};CVector operator+(CVector p, CVector q){ return CVector(p.x + q.x, p.y + q.y);}CVector operator-(CVector p, CVector q){ return CVector(p.x - q.x, p.y - ...原创 2019-12-06 12:22:10 · 154 阅读 · 0 评论