自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(49)
  • 收藏
  • 关注

原创 字典树(Trie树)

字典上是一种树形结构,是利用字符串的公共前缀来节约存储空间,最大限度减少无谓的字符串比较。Trie树特点:根节点不包含任何字母,其他每个结点都包含一个字母; 每个结点的所有儿子包含的字母各不相同; 从根节点到某个结点,路径上的字母依次连接起来所构成的字母序列称为该结点对应的单词;用给定的单词:i、is、he、her、man、map、she。一、由这些所构成的字典上如下(插入操作)...

2019-05-14 02:55:08 186

原创 最长上升子序列 O(nlogn)

给定一个数列arr[]={5,2,1,4,5,3};定义一个数组dp,dp[0]初始化为最小值(小于arr的最小值),定义top指向dp数组最后一个元素,定义i=0为arr数组指针; 从数组arr中取第一个数(value1),与dp数组最后一个数(value2)比较; 若value1>value2,则将value1插入到dp数组最后一位,dp数组长度+1(dp[++top]=arr[...

2019-05-12 12:50:44 1045

原创 并查集

并查集是一种树形的数据结构,用于处理一些不相交集合的合并及查询问题。主要操作:(1)初始化:将每个点所在集合初始化为其自身;(2)查找操作:查找元素所在集合,即查找根节点;(3)合并操作:将两个元素所在集合合并为一个集合(根节点相连);合并操作图解:现有四个集合(这里以节点权值最小的作为根节点)如下:将集合1和集合2合并,集合3和集合4合并:查找操作图解:...

2019-05-11 14:56:32 135

原创 SPFA算法

SPFA算法和Dijkstra一样是处理单源最短路径的算法。是对Bellman-Ford算法的队列优化,可以处理带负权的图。给定一个图G和源点v,dist数组保存v到其他顶点的距离,vis顶点集记录队列中的顶点,顶点v到自己的距离为0。步骤如下:将源点v入队; 从队列中取出一个顶点k,k出队(vis[k]=0); 以顶点k为中间点遍历与顶点k相邻的顶点更新dist数组,当(v,k,...

2019-05-11 02:57:16 196

原创 Problem 2265 Card Game (Second Edition) (数学期望)

Problem DescriptionFat brother and Maze are playing a kind of special (hentai) game with some cards. In this game, every player gets N cards at first and these are their own card deck. The game goes...

2019-05-10 22:09:10 170

原创 Dijkstra算法

Dijkstra算法是典型的单源最短路径算法,用于计算一个顶点到其他所有顶点的最短路径。给定一个图G和源点v,dist数组保存v到其他顶点的距离,顶点v到自己的距离为0。步骤如下:通过v到其他顶点的权值初始化dist数组,将顶点v添加到顶点集S; 从dist数组从选出权值最小的边(v,k),且k不属于顶点集S,将k添加到顶点集S; 以顶点k为中间点更新dist数组,即当(v,k,t...

2019-05-10 13:36:05 261 1

原创 Kruskal算法

Kruskal算法是一种按权值的递增次序选择合适的边来构造最小生成树的方法。对于给定的一张图,其算法思路:将边按权值升序排序; 选出权值最小的边加入到最小生成树中,如果产生回路就放弃这条边(利用并查集来判断是否产生回路); 重复步骤2,直到所有顶点都加入最小生成树中;算法过程图:将图的边按权值排序,每个顶点放在单独的集合里:(1)选出权值最小的边(0,2)加入到最小...

2019-05-09 00:20:15 1441

原创 密文搜索

福尔摩斯从X星收到一份资料,全部是小写字母组成。他的助手提供了另一份资料:许多长度为8的密码列表。福尔摩斯发现,这些密码是被打乱后隐藏在先前那份资料中的。请你编写一个程序,从第一份资料中搜索可能隐藏密码的位置。要考虑密码的所有排列可能性。数据格式:输入第一行:一个字符串s,全部由小写字母组成,长度小于1024*1024紧接着一行是一个整数n,表示以下有n行密码,1<=n&l...

2019-05-08 10:34:45 1628 5

原创 L2-025 分而治之(25 分)

分而治之,各个击破是兵家常用的策略之一。在战争中,我们希望首先攻下敌方的部分城市,使其剩余的城市变成孤立无援,然后再分头各个击破。为此参谋部提供了若干打击方案。本题就请你编写程序,判断每个方案的可行性。输入格式:输入在第一行给出两个正整数 N 和 M(均不超过10 000),分别为敌方城市个数(于是默认城市从 1 到 N 编号)和连接两城市的通路条数。随后 M 行,每行给出一条通路所连接的...

2019-05-08 10:30:40 863 2

原创 L2-026 小字辈(25 分)

本题给定一个庞大家族的家谱,要请你给出最小一辈的名单。输入格式:输入在第一行给出家族人口总数 N(不超过 100 000 的正整数) —— 简单起见,我们把家族成员从 1 到 N 编号。随后第二行给出 N 个编号,其中第 i 个编号对应第 i 位成员的父/母。家谱中辈分最高的老祖宗对应的父/母编号为 -1。一行中的数字间以空格分隔。输出格式:首先输出最小的辈分(老祖宗的辈分为 1,...

2019-05-08 10:25:38 2099

原创 L3-001 凑零钱 (30 分)

韩梅梅喜欢满宇宙到处逛街。现在她逛到了一家火星店里,发现这家店有个特别的规矩:你可以用任何星球的硬币付钱,但是绝不找零,当然也不能欠债。韩梅梅手边有 10410^410​4​​枚来自各个星球的硬币,需要请你帮她盘算一下,是否可能精确凑出要付的款额。输入格式:输入第一行给出两个正整数:NNN(≤104\le 10^4≤10​4​​)是硬币的总个数,MMM(≤102\le 10^2≤10​2...

2019-05-08 10:18:55 2625 2

原创 Prim算法

Prim算法是由R.C.Prim于1956年提出,是一种构造性算法。假设G=(V,E)是一个具有n个顶点的带权无向连通图,T=(U,TE)是G的最小生成树,其中,U是T的顶点集,TE是T的边集,则由G构造从起始顶点v出发的最小生成树T的步骤如下:初始化U={v},以v到其他顶点的所有边为候选边; 从候选边中挑选出权值最小的边加入TE,设该边在V-U中顶点为k,将k加入U中; 考察当前V-U...

2019-05-07 21:45:13 454

原创 Problem 2218 Simple String Problem(状态dp)

Problem DescriptionRecently, you have found your interest in string theory. Here is an interesting question about strings.You are given a string S of length n consisting of the first k lowercase l...

2019-05-07 15:53:46 162

原创 广度优先搜索(BFS)

算法思路(使用队列):广搜遍历图,从图某个初始顶点出发:将初始顶点入队,标记为访问过 从队列中取出一个顶点v,出队 依次将所有与v相邻且未访问过的顶点w压入队列,并标记为访问过 重复2、3两个操作直到所有顶点都访问过扩散式的搜索,直到所有顶点全访问结束对于这样的一个图以1为初始顶点则广度优先遍历结果为:125693478模板函数:int map[MAXN][MA...

2019-05-06 02:16:51 176

原创 深度优先搜索(DFS)

算法思路(递归):深搜遍历图,从图某个初始顶点v出发访问顶点v,标记为访问过 选择一个顶点v相邻并且没被访问过的顶点w 以w为初始顶点进行深度优先搜索,直到所有顶点都标记为访问过沿着图的一条路一直走到走不通,再回溯到第一个没被访问过的点(一条路走到尽头就回头)对于这样的一个图以1为初始顶点则深度优先遍历结果为:123456789模板函数:bool flag[MAX...

2019-05-06 01:52:00 234

原创 快速排序

排序思路(升序排序为例):在待排序的n个元素中任取一个元素作为基准(一般取第一个); 根据取出的元素将剩余元素划分为两个区间(无序的),把所有比基准元素小的元素放置在左区间,把比所有比基准元素大的元素放置在右区间; 将基准元素放入划分的两个区间中间(元素归位); 对划分的两个区间分别进行1~3的操作(递归实现,直到区间长度为1或0结束);示意图:快速排序模板函数:void...

2019-05-06 00:46:46 142

原创 kmp算法

问题:判断一个串t是否为另一串s的子串,及t在s的位置如:t=”abab”, s=”abacabab”。1、Brute-Force算法图解时间复杂度O(strlen(t)*strlen(s)),效率低,在较大的数据下容易超时。2、kmp算法匹配图解:时间复杂度O(strlen(t)+strlen(s)),相对于Brute-Force算法效率高,避免了不必要的匹配...

2019-05-06 00:43:21 157

原创 JavaScript学习记录

js作用:一、写入HTML输出二、对事件做出反应三、改变HTML内容四、改变HTML图像五、改变HTML样式六、验证输入js和html的结合方式注释ECMAScript(核心)数据类型和声明变量 数组 对象 语句 运算符 函数 变量作用域 全局函数 String对象 Array对象 Date对象 Math对象DOM(文档对象模型)BOM(浏览...

2019-05-06 00:42:24 144

原创 js DOM(文档对象模型)

具体参考js手册document对象//整个HTML文档element对象//标签对象属性对象文本对象:Node结点对象,是以上对象的父对象写入HTML:document.write("val");获取对象:document.getElementById("id");document.getElementsByName("id");document.getElement...

2019-05-06 00:41:35 151

原创 js BOM(浏览器对象模型)

具体参考js手册navigator.appName //得到浏览器名称location.href //当前网页地址,修改可跳转到另一个页面screen.width//屏幕宽screen.height//屏幕高history //保存网页浏览记录history.back()//跳转到上一个网页history.forward()//跳转到下一个网页history.go(val) //...

2019-05-06 00:41:00 443

原创 js Math对象

不需要创建对象可以直接使用属性(部分)PI;//圆周率方法(部分)ceil(x);//向上取整floor(x);//向下取整round(x);//四舍五入random();//获取随机数[0,1)pow(x,y);//返回x的y次方sqrt(x);//返回x的平方根min(x,y);//返回x和y中最小值max(x,y);//返回x和y中最大值...

2019-05-06 00:39:16 113

原创 js Date对象

获取当前时间:var data=new Date();方法(部分)toLocaleString();//根据本地时间格式把对象转换为字符串getFullYear();//获取当前的年getMonth();//获取当前的月(0~11)getDay();//获取当前的星期(0~6)getDate();//获取当前的天...

2019-05-06 00:39:02 95

原创 js Array对象

创建Array对象(三种):var arr=[1,2,3];var arr=Array(3);var arr=Array(1,2,3);创建空数组:var arr=[];var arr=Array();属性(常用):length(查看数组长度)方法(部分):concar(arr1);//连接两个或更多的数组,并返回结果join(str);//根据指定的字符分割数组,...

2019-05-06 00:38:49 94

原创 js String对象

创建String对象(两种):var str="abc";var str=new String("abc");属性(常用):length(查看字符串长度)方法(常用):bold();//加粗fontcolor();//设置字符串颜色fontsize();//设置字体大小(1~7)link();//将字符串显示成超链接sub();//把字符串显示为下标sup();//把字...

2019-05-05 00:09:58 99

原创 js全局函数

不属于任何对象的函数属性(部分)Infinity(代表正的无穷大的数值)NaN(指示某个值是不是数字值)undefined(指示未定义的值)方法(部分)eval(str);//执行js代码(如果字符串是js代码)encodeURI(str);//对字符进行编码decodeURI(str);//对字符进行解码isNaN(str);//判断str的值是否为数字...

2019-05-05 00:09:31 334

原创 js变量作用域

全局变量:在函数外声明的变量是全局变量,网页上的所有脚本和函数都能访问它局部变量:在函数内部声明的变量(使用 var)是局部变量,只能在函数内部访问它(没有使用var定义的系统视为全局变量,即使在函数内定义)...

2019-05-05 00:08:34 81

原创 js函数

函数三种定义方式普通函数:function 函数名(参数列表){ //函数体 //返回值:return 结果}匿名函数:var func=function(参数列表){ //函数体和返回值};动态函数:var func=new Function("参数列表","函数体和返回值");支持函数递归;js不存在函数重载,但可以模拟函数重载;...

2019-05-05 00:08:06 98

原创 js运算符

赋值运算符:"="、"+="、"-="、"*="、"/="、"%="算术运算符:"+"、"-"、"*"、"/"、"%"、"++"、"--"比较运算符:">"、">="、"<"、"<="、"=="、"!="、"==="、"!=="逻辑运算符:"&&"、"||"、"!"位运算符:"&"、"|"、"~"、"^"、"<<"、"&gt...

2019-05-05 00:07:32 244

原创 js语句

条件语句:if判断语句=:表示赋值==:表示条件判断switch语句:switch(key){ case 1: break; case 2: break; default:}循环语句:for循环:for(i=0;i<n;i++){ //执行内容}while循环while(i<n){ ...

2019-05-05 00:07:01 83

原创 js数组

定义方式:1、第一种 var arr=[元素1,元素2,元素3,...,元素n];2、第二种 var arr=new Array(n);//定义一个数组,数组长度为n3、第三种 var arr=new Array(元素1,元素2,元素3,...,元素n);属性:arr.length;//获取数组长度,长度是可变的数组可以存放不同的数据类型...

2019-05-05 00:06:16 106

原创 js对象

定义方式一、var person={ name:"Tom", age:25, id:12345};对象由花括号分隔对象的属性以名称和值对的形式 (name : value) 来定义。属性由逗号分隔二、使用Objectvar person=new Object();person.name="Tom";person.age=25;person.id=...

2019-05-05 00:05:05 73

原创 js数据类型和声明变量

定义变量都使用关键字var(弱类型)命名规则:1、第一个字符必须是字母、下划线“_”或美元符号“$”2、余下的字符可以是下划线、美元符号或任何字母或数字字符五种原始类型:string:字符串var str="abc";number:数字类型var num=123;boolean:布尔类型(true or false)var flag=true;null:可以通过将...

2019-05-05 00:04:25 992

原创 js注释

行注释://块注释:/* */

2019-05-05 00:03:31 1228

原创 js和html的结合方式

脚本标记:<script> js代码 </script>外部引入脚本:<script src="myscript.js"></script>外部脚本不能包含 <script> 标签

2019-05-04 23:42:27 234

原创 HTML+CSS学习记录

基本框架:<html><head></head><body></body></html>注释:<!-- -->头标签内:<title></title><meta></meta>可以设置页面跳转以及设置页面相关内容<base&g...

2019-05-04 00:08:39 151

原创 php字符串相关函数

具体使用看php手册转换函数implode(连接方式,数组);//将数组中的元素按某个规则连接成一个字符串explode(分割字符,字符串);//将字符串按照某个格式分割成一个数组str_split(字符串,字符长度);//按照指定长度拆分字符串得到一个数组截取函数trim(字符串[,指定字符]);//默认去除两边的空格,也可以指定要去除的内容,按照指定内容循环去除两边有的内容,...

2019-05-04 00:06:47 254

原创 php字符串类型

单引号字符串与双引号字符串都能使用。有结构要求或内容超过一行可使用以下两种nowdoc字符串:没有单引号的单引号字符串$str=<<<'边界符' 字符串内容边界符;heredoc字符串:没有双引号的双引号字符串$str=<<<边界符 字符串内容边界符;单引号字符串与双引号字符串的区别:1、单引号字符串能识别\',双引号字符串不...

2019-05-04 00:06:11 269

原创 php常用的系统函数

具体用法看php手册一、有关输出的函数print();//类似echo输出提供的内容,本质是是一种结构(不是函数),返回值为1,括号可选print_r();//类似于var_dump,但比var_dump简单,不会输出数据类型,只会输出值(数组打印使用的较多)二、有关时间的函数date("格式",时间戳);//按照指定格式对应的时间戳(从1970年开始计算的秒速),没有指定时间戳,...

2019-05-04 00:05:34 170

原创 php变量作用域

全局变量:定义在函数外的变量(理论上不能在函数内部访问,利用$GLABALS可在函数内部访问)局部变量:定义在函数内的变量(不能在函数外部访问,只能在函数自己内部访问)超全局变量:系统定义的变量(预定义变量,可以在函数内外访问)在变量名前加关键字global可实现函数内外都可访问静态变量:在函数内部定义的变量,可以统计当前函数被调用的次数(关键字static)...

2019-05-04 00:05:05 467

原创 php函数

基本语法:function 函数名(参数){ //函数体 //返回值:return 结果}命名规范:和常量的命名一样。不能有同名函数,不支持函数重载。允许实参多于形参,当不能少于形参。如果形参有默认值,则可不传入实参。具有默认值的形参要定义在右边。可变函数(用于将当前函数传入其他函数使用):$a="func";function func(){函数体}$a()...

2019-05-04 00:04:36 97

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除