- 博客(33)
- 收藏
- 关注
原创 前向星的迷思
int n, m, cnt=0, head[MAX];struct Edge{ int w,to,next;}e[MAX];void add(int from, int to, int w){ e[cnt].w = w; e[cnt].to = to; e[cnt].next = head[from]; head[from] = cnt++;}这是什么, 这是前向星。当初学算法的时候我真的怎么看都看不懂。虽然题做对了, 但是怎么这还是晕晕糊糊的!
2021-07-27 21:18:20 167
原创 scanf的官方解释:尽可能详细
本文引用了scanf的官方doc,指出了许多scanf使用过程中可能遇到的陷阱,足以解决大部分坑man页面:White space (such as blanks, tabs, or newlines) in the format string match any amount of white space, including none, in the input.Everything else matches only itself.Scanning stops when an input
2021-07-21 16:27:04 456
原创 Ubuntu上mysql安装后修改root密码(2021-05-31)
折腾了一个下午,这些做法都是错的(包括官网的)以下方法尝试后均报错UPDATE user SET password = PASSWORD('你要设置的密码') WHERE user = 'root';sudo mysqladmin -u root password oldpass "123456"sudo mysqladmin -u root password "123456"SET PASSWORD = PASSWORD ("123456");ALTER USER 'root'@'localh
2021-05-31 23:28:24 1285 1
原创 初识mysql的索引
这是我关于mysql的index的第一篇笔记为什么使用indexmysql官网上写着,用index就可以让where变快,是一种牺牲空间换时间的方法,是B树。B树,那就是疯狂用指针,用多层级的指针来代替超长的数组。如果要找第1234行,我用3个指针[1000-2000] -> [1200-1300] -> [1230-1240] -> [1234]索引原则看上去我们的只需要到处用create index就好了,实测不然。因为索引有几大原则,如果不遵守,就会用不上索引左
2021-04-20 15:05:28 107
原创 记载vmware中运行Ubuntu滚动卡顿的问题
系统和版本Windows10vmware官网免费版16AMD-R7标压蓝宝石显卡Ubuntu20问题描述出现时机在虚拟机中打开任何有右侧滚动条的应用,按住鼠标不放,当鼠标移到虚拟机界面边界上时,拖动将失效问题影响极大影响虚拟机内浏览器,vscode等应用的使用体验图片描述见图片:解决办法暂时还没有...
2021-04-18 16:14:50 775 7
原创 一键卸载Ubuntu的火狐浏览器
sudo apt list | grep firefox | grep 已安装 | grep -oE "^firefox.*\/" | grep -oE "^[^\/]*" | xargs sudo apt purge -y
2021-04-09 09:29:48 1159
原创 Linux的unistd的文件IO的最简单的HelloWorld
文件IO的最常用的HelloWorld#include<stdio.h>#include<stdlib.h>#include<string.h>#include<unistd.h>#include<sys/types.h>#include<sys/stat.h>#include<fcntl.h>int fd;int main(){ //创建文件 fd = open("file.tx
2021-04-08 16:50:14 161
原创 贪心算法的一些通用策略
原则不回溯,一个for循环找出答案局部最优解策略线性排序排队问题活动选择问题ddl问题贪心背包问题近似装箱问题堆维护合并哈夫编码合并果子数列极差lazy汽车加油问题直线轰炸问题糖果问题...
2021-04-07 21:40:52 124
原创 贪心算法中活动选择问题的本质
问题描述给定每个活动的start和finish,安排尽量多的活动。错误解法符合人类直觉的贪心策略似乎有两个:按照start升序排列,尽量选择开始时间早的活动但如果该活动时长为∞,则只能安排一个活动。按照finish-start排列,也就是优先选择占用时间最短的活动。但如果该活动的开始时间最晚,比如晚上,则中午到晚上的时间都无法安排活动。正确解法正解是将策略1和策略2进行综合考虑,希望找出开始得早,占用时间少的活动。根据t = finish - start则t + start
2021-04-07 21:38:17 181
原创 动态规划的空间复杂度优化——以01背包和完全背包为例
例如01背包的dp[i][d] = max(dp[i-1][d], dp[i-1][d-wi]+vi)只用到了i和i-1,所以直接去掉i变成dp[d].max(dp[d], dp[d-wi] + vi)然后d变成逆向,d = [D,0] = [D,wi]计算第i行的cur的时候需要用到在i-1行的kala因此kala应该先被读取,再被写入再例如如果是像这样的完全背包,那么kala应该先被写入再被读取...
2021-04-07 21:21:41 328
原创 初识快排
如何只对一个元素进行排序?这就是快排里面的partition部分partition的本质是只对一个元素进行排序不如叫sort_one_num或者sort_the_keypartition锁定vec的一个片段,选取最右边的数称为vec[key]并将其在这个片段中排好序对一个元素排序?效果就是key左边的数比key小,key右边的数比key大返回这个位置,称之为sorted,即完成了对这个元素的排序每次只选最右边的数作为key不太公平,rand_partition随机选一个数将其sort...
2021-04-07 20:59:22 92
原创 详解C++里面令人迷惑的operator(),std::less等等
C和C++里面有非常多令人迷惑的特性,`operator()`就是其中一个。看完本文之后你会知道,他的本质其实就只是一个匿名函数,C++开发者利用这个畸形的办法实现了类似java里`Comparable`接口的功能。
2021-04-05 11:35:37 2640 1
原创 初识OBST
现在给出123,请建立BST我们可以有最坏的一种建立方法:1 2 3如果我要查找1,我需要访问1个节点;如果我要查找2,我需要访问2个节点;如果我要查找3,我需要访问3个节点;如果我都要找,我要访问1+2+3个节点,6个节点。称这个6为cost。现在看另一棵 21 3如果我要查找2,我需要访问1个节点;如果我要查找1,我需要访问2个节点;如果我要查找3,我需要访问2个节点;如果我都要找,我要访问1+2+2个节点.
2021-04-04 16:51:28 340
原创 如何在WORD里优雅地插入代码块
别看网上那些什么用openDocument的方法了,那个网址都打不开了。看个鬼正解是把代码放到VSCODE里面去,然后粘贴到WORD。效果非常好,可以说和在VSCODE里面看没有任何区别。
2021-03-16 21:51:45 369
原创 对tensorflow里面keras种的Dense的units的理解
关于输入形状的思考我之前是最习惯这样的:θX = Y,因为这样长得像f(X) = Y,这也更符合大多数的图θ是矩阵, X每一列是一个输入,这一列会作为一个整体,经过θ的处理,变成Y最左边的一个数据。Y就是横着的一个list。但是现在我发现不太一样了首先是pandas.read_excel和mySQL,他们似乎更喜欢把feature当成一列。这样就会导致X的每行是一个整体,这样就会导致X的shape=(??,feature),然后Y形状就是一列,Y.shape=(??,1)。整个过程就是:(??
2021-03-05 17:23:59 1959
原创 Linux下的命令行剪切板功能
sudo apt install xclip查看剪切板中的内容$ xclip -o$ xclip -selection c -o将输出复制至剪贴板echo "hello xclip" | xclip-selection c将文件中的内容全部复制至剪贴板xclip -selection c remade.md将剪切板中的内容粘贴至文件xclip -selection c -o > remade.md或者直接使用xsel命令:将输出复制至剪贴板echo "hello l
2021-02-28 10:28:42 3455
原创 ERROR! The server quit without updating PID file (/usr/local/mysql/data/mac.local.pid)
其实就是用mac自带的启动就好了
2021-02-16 14:50:19 558
原创 EOF到底是什么
字符串长度是用'\0'算出来的,但是文件大小不是用EOF算出来的。相反,EOF是用文件大小算出来的。在使用tee等命令的时候,可以用Ctrl-D发送EOF。EOF是一个signal。tee其实并不会在文件末尾添加\n,而是因为你不输入\n的话,那一行就不会被读入。vim会自动在文件末尾添加\n,输入123然后保存然后cat发现会换行了,同时用ll也会发现是4byte。如果不想要文件末尾的那个\n,可以使用tee123^D^C,使用cat会发现不换行,使用ls -l看到文件大小为3byte,再次证明了
2021-01-31 17:36:30 555
原创 离散数学第1章命题逻辑
“要指定一个语言,首先需要确定所使用的符号。汉语使用的符号是汉字和标点符号。命题逻辑使用的符号是命题变元和联结词。谓词逻辑使用的符号是常元、函数符号、谓词符号、量词、联结词等。在汉语中,能够表达完整意义的符号串是句子。在数理逻辑中,能够表达一定意义的符号串是公式。”“在汉语中,可以从两方面看待句子:一方面可将它看作一个符号串,另一方面也可将它看作该句子的涵义。前者是语法观点,后者是语义观点。从语法上看,“贾政是贾宝玉的父亲。”与“贾政是贾宝玉的爸爸。”是不同的句子,因为它们是不同的符号串。从语义上看.
2021-01-10 15:51:20 839
原创 离散数学第12章树
结论:树都是简单无向图,连通,无圈,m = n-1连通无圈无自环且每对节点之间的基本链唯一有基本链说明连通,基本链唯一再加上无自环就是无圈连通,加一边仅会导致有一个圈如果加一条边会有两个圈,那么去掉这条边就肯定还有一个圈比如"日"去掉一横还有一个"口"连通,任何一条边都是割如果去掉一条边还连通,那一定有圈连通,m=n−1m = n-1m=n−1无圈,m=n−1m = n-1m=n−1位置二元树...
2021-01-09 16:56:36 821
原创 离散数学第11章图的矩阵表示
通路的条数长度为x的通路/链的条数 = GxG^xGx中的元素长度为x的回路就是对角线。可达矩阵R=bool(IA∣∣G∣∣G2∣∣G3∣∣...∣∣Gn−1)R = bool(I_A || G || G^2 || G^3 || ... || G^{n-1})R=bool(IA∣∣G∣∣G2∣∣G3∣∣...∣∣Gn−1)求强分图画出R&&RTR\&\&R^TR&&RT,读取半排,互相可达即rij&&rjir_{ij}
2021-01-09 10:29:08 1307
原创 离散数学第10章最短通路
最早完成时间需要进行反向DFSte(source)=0te(source) = 0te(source)=0te(to)=max(te(from)+w)te(to) = max(te(from) + w)te(to)=max(te(from)+w)最晚完成时间需要正向DFStl(from)=min(tl(to)+w)tl(from) = min(tl(to) + w)tl(from)=min(tl(to)+w)关键通路最长路定理某点在关键通路上 <=> te =
2021-01-09 10:02:43 498
原创 离散数学第9章图论
若不加特殊声明,用n代表点的个数,用m代表边/弧的个数邻接/相邻/关联点和点邻接,边和边相邻,点和边关联。度自环算两个度,无向图算2,有向图算出度+入度孤立点度为0悬挂点度为1,对于悬挂边平凡图仅一个孤立点简单图无自环,无重边握手定理出度 = 入度 = m奇顶点的个数为偶数度=出度+入度=2m度 = 出度 + 入度 = 2m度=出度+入度=2m度=奇顶点∗奇数+偶顶点∗偶数度 = 奇顶点*奇数 + 偶顶点*偶数度=奇顶点∗奇数+偶顶点∗偶数故
2021-01-08 16:35:17 5054 1
原创 离散数学第7章函数
函数的声明f是从X到Y的函数f:X−>Yf: X -> Yf:X−>Y,f={<x,y>∣x∈X∧y∈ranf}f = \{<x,y> | x \in X \land y \in ranf\}f={<x,y>∣x∈X∧y∈ranf}函数是满足单值性且dom(f) = X的关系。双射满足单值性称为单射。当ran(f) = Y时称为满射。单射又满射时称为双射。双射即存在反函数象源/象<象源, 象>像与派生X∗∈
2021-01-08 11:28:25 1980
原创 离散数学第6章关系
关系的定义关系和笛卡尔积都是有序偶的集合例如一个笛卡尔积y1y2x1<x1,y1><x1,y2>x2<x2,y1><x2,y2>x3<x3,y1><x3,y2>这个矩阵就是X x Y的笛卡尔积,然后定义关系R100111把对应元素取出来,R = {<x1,y1>, <x2,y2>, <x3,y1>, &
2021-01-07 15:23:26 4248
原创 离散数学第5章集合
集合的表示方法穷举法A = {1, 2, 3, 4, 5}抽象法A = {x | P(x)}P(x)怎么写没有具体的规定,&&可以和逗号混用,甚至可以写中文空集∅⊆Anyset\emptyset \subseteq Anyset∅⊆Anyset空集是唯一的∅∈{∅}\emptyset \in \{\emptyset\}∅∈{∅}because {∅}\{\emptyset\}{∅} is a set∅⊆{∅}\emptyset \subseteq \{\emptyset
2021-01-07 10:19:45 2788
原创 离散数学第14章二分图匹配
二分图的定义G=<V,E>是无向图,若可将V分成两个非空子集X和Y,并且使得同一子集中的任何两个顶点都互不邻接,则称G为二分图。并称X和Y为G的互补顶点子集若非平凡图G的每个连通分支都是二分图或平凡图,则G是二分图。完全二分图Kx,yX中的每个顶点与Y中每个顶点相邻,记为Kx,y若G有长度为奇数的闭合链,则也有长度为奇数的圈长度为1的闭合链是圈。然后画一个8,这是一个有奇数个顶点的闭合链,拆成两个O,这两个O中必有一个O有奇数个顶点,然后数学归纳法得证非平凡二分图的充分必要
2020-12-24 08:55:24 3201
原创 离散数学第12章树
割割的字面意思就是割开,不连通。割集是一些边的集合,从图中去掉这些边之后图就不连通了。基本割集生成树里的一条树枝和一些弦。树是特殊的图,去掉树的每一个树枝都会导致树的两个子图A和B不连通,因此每一个树枝都是一个割集。如果树是一颗生成树,去掉一根树枝就能让A和B不连通,但在原图单单这么做还不够。在原图里面,还得再去掉一些生成树的弦才能使得AB不连通。这些弦和那根树枝组成的集合是一个关于原图和这颗树的某一个基本割集。基本割集组生成树有n个点,n-1个树枝,也就有n-1个基本割集,1个基
2020-12-17 15:32:38 1713 1
原创 离散数学第13章穿程问题
欧拉欧拉就是一笔画完的意思欧拉圈-无向图一笔画完,回到自身欧拉图-无向图有欧拉圈的图定理13.1当且仅当无向图G的每个顶点都是偶顶点的时候,G是欧拉图画一个上面是三角形下面是正方形的“房子,试图一笔画完,就能感受到了。正向证明=>>>>>欧拉圈进入和离开每个顶点的次数相同,所以每个顶点都是偶顶点。画一个8就能感受出来了。反向证明<<<<<=问题是给定一个全是偶顶点的图,怎么找欧拉图核心:从图中去掉一
2020-12-17 09:42:23 857
原创 图解KMP算法
废话不多说,直接上图。首先我们约定index全部从1开始。pi[1] = 0,意思是长度为1的字符串没有border。border就是前缀和后缀相等的部分的长度,具有极大性。如图,红字上面是index,匹配串的下面是其对应的前缀函数:首先发现index = 6处不同此时前一位的前缀函数为2前缀函数为2,代表这两个相同所以我直接移过来,继续开始找在index = 14的地方又发现了不同,所以移动还是不同,所以移动还是不同,左边的前缀函数是0,但我不能总移动0吧,所以移动1
2020-11-28 09:41:35 149 1
原创 DFS深度优先搜索详解
DFS深度优先搜索核心伪代码就2行DFS(this) gray this DFS all white adj用DFS打印图输入8 12 11 21 32 32 42 53 43 54 56 44 77 55 8输出1 2 3 4 5 7 8 6 代码//DFS.c# include<stdio.h># include<stdlib.h># include<stdbool.h># include<
2020-11-11 21:40:07 255
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人