自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 01背包

01背包特点:每个物品最多仅能用一次。问题描述:从 N 个物品里选择总体积不超过 V 的物品的最大价值。DP 和暴搜一样会枚举所有方案,当时 DP 的方式更省时。背包问题 实际上是 组合问题(选择模型) 的一种,所以当看到组合问题时,就要考虑是不是背包问题了。01背包问题有 N 件物品和一个容量是 V 的背包。每件物品只能使用一次。第 ii 件物品的体积是 vi,价值是 wi。求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。输出最大价值。输入格式第一行两个整

2020-11-27 20:50:20 280

原创 Dijkstra求最短路

Dijkstra求最短路如果图中存在负权边,则不要使用 Dijkstra 来求最短路。重边和自环如果题目中表明所给的图存在重边与自环。在求最短路径的问题中,如果自环边权重是 正数,显然它不会出现在最短路径中。如果自环边是 负数,则需要考虑出现在最短路中。如果是稠密图,使用了邻接矩阵来存边,则因为求最短路,所以我们对于重边,只需要存储最小的那个重边即可。 但如果是稀疏图,使用了邻接表来存边的话,则不需要对重边进行特殊处理。朴素版 Dijkstra 算法一般需要使用朴素版 Dijkstra

2020-11-27 20:48:25 576 1

原创 Bellman-Ford

Bellman-FordBellman-Ford 算法的证明Bellman-Ford 算法各方面都没有 SPFA 算法优良,但是有些题只能用 Bellman-Ford 算法来求,SPFA 算法要求图中不存在负环。不过,只要图中没有负环,都可以使用 SPFA,绝大部分算法题求最短路都没负环。Bellman-Ford 算法对边的存储不太敏感,你甚至可以不使用邻接表或邻接矩阵存边,直接使用一个结构体一维数组也行。struct Edge { int a, b, w}edges[M];Bellman-

2020-11-27 20:42:57 262

原创 树与图的存储

树与图的存储我们在算法比赛中都是以数组来模拟 树 与 图。我们常常使用 链表 与 邻接表来存储树与图。常常看到有人使用结构体来实现链表和邻接表,但是这只适用于面试,不适用与笔试。这是因为每次创建一个新的节点都需要调用 new 函数,然而 new 函数效率是非常低的。低到什么程度?一般题目节点有 10 万 到 100 万,然而你仅仅是 new 10万个节点就有可能超时了……当然,你一开始初始化 10 万个节点,这个倒是可以,但是这和数组就区别不大了。数组模拟链表(又称为 静态链表)最主要的好处就是快。

2020-11-27 20:40:50 624 2

原创 STL堆与手写堆

堆堆的特点插入一个数;求集合中的最小值;删除最小值;以上是堆的最基本的特性,C++ STL 实现的小根堆支持上述操作。删除任意一个元素;修改如意一个元素;以上两个特性 STL 堆无法直接实现,但是可以间接实现。堆是一个完全二叉树。以小根堆为例子,每个节点的值都小于等于两个子节点。所以根节点是集合的最小值。STL 堆STL 堆就是 优先队列。并且实现的堆是 小根堆。定义:#include <queue>typedef pair<int, int>

2020-11-27 20:38:17 353 1

原创 快速幂

快速幂应用场景所谓的快速幂就是迅速地求出 akmodpa^{k} mod pakmodp 的结果,时间复杂度是 O(logk)O(logk)O(logk) ,其中 1≤a,p,k≤1091 \leq a,p,k \leq 10^{9}1≤a,p,k≤109 。正常情况下,我们求 akmodpa^{k} mod pakmodp ,其中 1≤a,p,q≤1091 \leq a, p, q \leq 10^{9}1≤a,p,q≤109 。使用的是一个 for 循环,时间复杂读度是 O(k)O(k)O(k)

2020-11-27 20:36:16 288

原创 DFS

DFSDFS 与 BFS 时间复杂度相同,都是 O(n+m)O(n + m)O(n+m),其中 n 表示图的节点数,m 表示图的边数。相比于 BFS,DFS 代码量比 BFS 短很多,但是缺点是有可能 爆栈。从实际应用来看,能用 dfs 解决,就不要用 bfs 了。DFS 会遍历所有的节点,但往往 BFS 不需要这样。树与图的 DFS树(不是图)的 DFS 有一个 特点:可以在 DFS 树的过程中求出每一个节点为根节点的子树的节点数量。这是因为树的 DFS 不会深搜上面的点,只能搜索下方的点,又

2020-11-27 20:35:14 125

原创 BFS

BFSBFS 与 DFS 的时间复杂度相同,都是 O(n+m)O(n + m)O(n+m),其中 n 表示图的节点数,m 表示图的边数。当树或者图的所有边的权重都是 1 时,才可以使用 BFS 求最短距离,否则应该使用 DFS 考虑所有情况。当权重不是 1 的时候,应该使用 Dijkstra 等算法来求最短距离。BFS 原理队列 —> 先进先出 —> BFS栈 —> 后进先出 —> DFS所有的 BFS、DFS 都可以对应一颗树。bfs 遍历顺序:bfs 实现遍历主

2020-11-27 20:31:00 3882

原创 树状数组

树状数组线段树问题集合包含数树状数组,这意味着树状数组能解决的问题线段树往往也能解决。虽然用法上,线段树比树状数组丰富很多,但是树状数组也有它的优势:1. 代码短;2. 运行效率很高(相对于线段树,常数非常小,大部分情况下能差 10 倍左右,如果是简单问题的话,常数会差的稍微少一些。)方法选择上,如果能用树状数组来做,就不要用线段树。树状数组树状数组的作用可以动态、快速地(O(log n))求前缀和,我们一般情况下就是用树状数组来求前缀和的 ~动态、快速地求前缀和:设原数组为 a,其对应的前

2020-11-27 20:27:14 396

原创 P2P体系结构

体系结构客户 - 服务器体系结构例子:Web 、电子邮件、DNS客户-服务器体系结构特点极大地依赖于总是打开的基础设施服务器。在客户 - 服务器文件分发中,该服务器必须向每个对等方发送该文件的一个副本,所以服务器承受了极大的负担,并且消耗了大量的服务器带宽。客户-服务器分发文件时,分发时间随着对等方的数量线性的增加,而且没有上界只有下界。P2P 体系结构对等方:成对间歇性连接的主机。(其实就相当与客户 - 服务器体系结构中的客户主机)分发时间(distribution time):所有 对

2020-11-27 20:21:52 3195

原创 IDEA 常用设置

IDEA 常用设置一IDEA 常用设置一

2020-10-24 02:50:09 78

原创 DNS

DNS运行在主机上的浏览器使用 DNS 的过程通过上述过程,发现 DNS 会带来网络时延。解决策略是:让客户主机的 DNS 应用 向在它附近的 DNS 服务器的缓存中寻找是否已经存在 hostname 对应的 IP 地址。DNS 提供的各种服务注意 规范主机名 对人类来说,一般没有 主机别名 好记忆。hostname 到 IP 地址的映射;多个主机别名 到 规范主机名 的映射;邮件服务器别名 到 规范主机名 的映射;负载分配。繁忙的站点会有多台服务器,每个服务器运行在不同的端系统上,每个

2020-10-24 00:35:09 314

转载 intern()与字符串池

intern() 与 字符串池今天在看《Thinking in Java》的 intern() 方法时,产生了一些兴趣,结果搜到了 字符串池 这个有趣的概念。intern() 方法返回字符串对象的规范化表示形式。它遵循以下规则:对于任意两个字符串 s 和 t,当且仅当 s.equals(t) 为 true 时,s.intern() == t.intern() 才为 true。语法public String intern()参数无返回值一个字符串,内容与此字符串相同,但一定取自具有

2020-09-22 01:12:46 90

原创 前缀和

前缀和使用场景求一个静态数组某个区间内所有数的和 的时候,我们便可以使用前缀和,有效提高运行效率。前缀和 是非常重要的一个思想,在很多问题中都会用到。当然,快速地求某一段数的和,也有其它算法可以优化,比如树状数组、线段树。区别在于:前缀和时间复杂度为 O(1),线段树与树状数组都是 O( logn ) 。前缀和只能处理静态数组,这意味着被前缀和的数组的每个元素如果改变,前缀和的结果依旧是旧值的和。但是线段树与树状数组却可以一起动态改变。时间效率更高,往往意味着会损失一些东西。使用步骤定义

2020-09-20 18:53:42 426

原创 二分算法

二分算法实数二分不需要考虑是否补 1 的问题,因此相对而言更简单。有单调性则一定可以二分,能二分却不一定具有单调性。没有单调性也可能可以二分。整数二分思想整数二分特别容易出现死循环。确定一个区间,使得目标值(答案)一定在区间中。找一个性质,这个性质具有二段性(95% 的二分都具有二段性):所谓的二段性就是区间内每个点都可以判断是否具有这个性质,并且利用这个性质,可以将一个区间划分为连续的两个部分,前半段区间满足性质,后半段不满足此性质,中间没有缺失的地方。 答案必须是二分的分界点。

2020-09-19 10:24:25 362

原创 层次分析法

层次分析法2012a 国赛论文也可以使用了层次分析法来计算权重。平均随机一致性指标RI = [0, 0, 0.52, 0.89, 1.12, 1.26, 1.36, 1.41, 1.46, 0.49, 0.52, 1.54, 1.56, 1.58, 1.59];一共 15 个。层次分析法(The analytic hierarchy process,AHP)是建模比赛最基础的模型之一,其主要用于解决评价类问题(例如:选择哪种方案最好、哪位运动员或者员工表现的更优秀)。权重 即重要性程度

2020-09-15 23:15:38 10054 1

原创 Matlab 导入Excel表数据的方法

导入 Excel 表数据的方法1. 使用 UI 界面中的 导入数据 功能。2. 在工作区直接导入复制的 Excel 内容在工作区新建一个变量。用鼠标双击这个变量,查看这个变量的内容:从 Excel 表中直接 Ctrl + C 复制数据直接在 变量的第一个单元格中鼠标右击,选择 ‘粘贴 Excel 数据’ 即可3. 使用 A = xlsread(‘fileURL’, n)n 取大于 0 的数字,表示读取 sheet n 的所有表格,不写 n 的时候会取 sheet 1 的所有数据。函数

2020-09-14 21:13:08 74705 2

原创 Lingo 中的各种函数

数学函数在 Lingo 中 Π 值写 3.14159 即可。集合操作函数合操作函数变量定界函数@bin(x) 限制 x 只能取 0 或 1,0-1规划中经常使用。@gin(x) 限制 x 为整数,在整数规划中特别有用。gin 谐音哽塞的哽。@bnd(l,x,r) 限制 l <= x <= r ,推荐直接替换两个约束条件。@free(x) 取消对变量 x 非负的限制,使其定义域自由。可以使用 for 循环对大量的变量使用 变量定界函数。@bnd 函数的优势@bnd(l

2020-07-19 00:24:15 11325

原创 Lingo 运算符

运算符算术运算符+、-、*、/ 没啥好说的。关系运算符Lingo 中只有 3 种关系运算符:=、>=、<=。没有单独的 > 、< ,若出现,Lingo 则视为省略了 = 。逻辑运算符逻辑运算符唯一会出现的位置for 循环中用 sum 求和。for 中 | 与 : 之间填写逻辑条件。相当于Java for 循环中的 if 判断条件成立后,再执行 : 之后的操作。if 判断中(很少出现这种情况,只有当模型中出现了分段函数时才有可能使用 if 判断,Lingo 中的 if

2020-07-17 17:03:57 3305

原创 Lingo 的基本使用入门

Lingo 的基本使用== 哎,什么都得自学……学校课程欠缺好大…… ==lingo 的语法注意除号为 /表示次方,使用 ^ eg:x^2lingo 不区分大小写,eg:mmm、Mm、mMMm 都视为同一个变量。(Spss 也不区分哦)lingo、Matlab 中变量的命名不要使用驼峰式,使用下划线,且字母在首位。lingo 不读取空格model end 关键词可以不添加。但是 使用矩阵工厂创建矩阵后,整个程序需用 model: 和 end 包起来。Lingo 17 有时候会报一些语法错误

2020-07-17 17:01:51 15543 16

原创 SpringMVC无法加载静态资源的问题

SpringMVC 无法加载静态资源的问题问题场景在 SpringMVC 环境下,当你的前端 脚本文件使用了 jQuery 语法时,前端必须先从后端请求获得 jQuery 的 js 文件。但是在默认情况下,你会惊奇地发现:明明路径没有问题,前端竟然无法获得 jQuery.js 文件!这是因为,你在 webapp / web.xml 配置 dispatcherServlet 拦截器时,直接拦截了所有的请求,包括前端对静态资源的请求,所以才会导致 404。 <servlet> &

2020-07-09 16:45:16 749

原创 IDEA项目配置SpringMVC环境

IDEA项目配置SpringMVC环境用 Maven 搭建环境。 <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>5.0.11.RELEASE</version> </dependency>在 we

2020-07-08 22:18:28 1294

原创 IDEA out 文件夹中不显示内部类的 .class 文件

IDEA out 文件夹中不显示内部类的 .class 文件今天在学习 《Thinking in Java》时,想看看使用了内部类的 .java 文件编译后的 .class 文件中的内部类文件。package chapter10.test10dot11;interface Counter { int next ();}public class LocalInnerClass { private int count = 0; Counter getCounter (fin

2020-07-05 19:38:07 3237 1

原创 JDBC

JDBC(Java DataBase Connectivity)JDBC 简介Java 数据库连接技术。即用 Java 程序操作数据库的一套接口。是独立与 特定数据库(MySQL、SQLServer) 的管理系统,也就是无论使用的是什么类型的数据库都可以用 JDBC 去连接。让 JDBC 去翻译底层数据库的各种指令,我们只需要使用 JDBC 的接口即可。大大提高了开发效率和维护成本,像极了 Java 跨平台的功能。JDBC 体系接口面向应用的 API,供程序员调用面向数据库的 API,供厂商开

2020-07-01 13:51:11 95

原创 HTTP中的非持续连接 和 持续连接,以及 三次握手 过程

HTTP中的非持续连接 和 持续连接,以及 三次握手 过程HTTP 默认采用 持续连接,但是 HTTP 客户端 和 服务器夜可以配置成 非持续连接。采用 非持续连接的 HTTP来看看一个服务器向客户端传送一个 Web 页面的步骤。假设该页面含有一个 HTML 基本文件 和 3 个图像文件的应用,也就是说,以网络连接的角度来看,这个页面有 4 个对象 。假设这个文件的 URL 为:http://www.thesunandsnow.com/index.html 。<!DOCTYPE html&gt

2020-06-30 11:29:03 3002

原创 SpringMVC 简介

Spring MVC 概述Spring MVC 是目前主流的实现 MVC 设计模式的框架,是 Spring 框架的一个分支产品,以 Spring IoC 容器为基础(用 IoC 来管理 Spring MVC 各个组件),并利用容器的特性来简化它的配置。Spring MVC 相当于 Spring 的一个子模块,可以很好的和 Spring 结合起来进行开发(如果是其他MVC框架,则需要整合到 Spring 中),是 Java Web 开发者必须掌握的框架。(也是目前最主流的框架)什么是 MVC 设计模式?

2020-06-29 08:38:58 206

原创 《计算机网络自定向下》Wireshark 实验资源及其参考答案

今天想做一《计算机网络自顶向下》上配套的 Wireshark 实验。但是中文版或者影印版是没有配套的实验资源的。在网上找了半天,记录一下结果。github 《计算机网络自顶向下》Wireshark 实验资源及其中文翻译与参考答案文件资源较大,下载缓慢的解决方法:github 资源下载缓慢解决方案视频:码云...

2020-06-27 20:04:57 1125

原创 如何去除子元素从父元素“继承”的下划线

如何去除子元素从父元素“继承”的下划线问题描述text-decoration 有着自己不同寻常的一面。在 CSS 文档中,我们发现,text-decoration 属性不可被继承。当时,在视觉上,我们惊讶地发现似乎可以继承!实例代码如下:<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="wid

2020-06-26 18:19:16 813 1

原创 Spring AOP

Spring AOPAOP:Aspect Oriented Programming 面向切面编程是 除了 IoC 之外的,另外一个 Spring 的核心概念。AOP 是对面向切面编程的一个补充,在运行时,动态地将代码切入到类的指定方法、指定位置上的编程思想就是 面向切面编程。将不同方法的同一个位置抽象成一个切面对象,对该切面对象进行编程就是 AOP。AOP 的优点降低模块之间的耦合度。面向接口编程指的是在一个业务模块里面把它自己的逻辑进行解耦合。AOP 则是对业务模块与业务模块之间进行解

2020-06-25 00:57:49 92

原创 vertical-align 各个属性值的含义

vertical-align 各个属性值的含义注意:vertical-align 属性不继承有关基线、行内框、行框、内容区、行距的 定义vertical-align: baselinevertical-align: baseline 强制元素的基线与父元素的基线对齐。(多数浏览器的默认值)vertical-align: supervertical-align: super 使元素基线高于父元素基线,但是高多少规范中没有要求,由用户代理(浏览器)自己决定,不同浏览器可能不同。<sty

2020-06-24 16:38:47 4141

原创 Spring依赖

Spring 依赖什么是 Spring 依赖?与继承类似,依赖 也是描述 bean 和 bean 之间的一种关系。配置依赖之后,被依赖的 bean 一定先创建,再创建 依赖的 bean。eg:A 依赖于 B。则 B 一定先创建。Spring 对象创建顺序当你在 Java 类中创建了 ApplicationContext 类时,就会创建 相关联的 xml 文件中的 Spring 对象。并且 Spring 对象的创建顺序是根据 xml 文件中 bean 的顺序来创建的。但是现在问题是,在 xml

2020-06-24 00:59:20 2043

原创 a 标签的四个伪类样式优先级

a 标签的四个伪类样式优先级a:link定义链接样式,针对尚未访问的链接。a:visited定义鼠标点击后的链接样式。也就是已访问过的链接的样式。:focus 定义标签获得鼠标焦点(游标)时的样式。a:hover定义鼠标移入 a 标签时的链接样式。a:active定义鼠标点击瞬间的链接样式,active 当然可以用在其它标签上**提示:**在 CSS 定义中,a:hover 必须被置于 a:link 和 a:visited 之后,才是有效的。**提示:**在 CSS 定义中,a:active

2020-06-23 19:44:33 731

原创 Spring 的 P 命名空间

Spring 的 P 命名空间什么是 P 命名空间?P 命名空间 不是新的东西,它是对 IoC 和 DI 的简化。使用 p 命名空间 可以更加方便地完成 bean 的配置以及 bean 之间的依赖注入。如何使用 p 命名空间?首先必须确保 xml 文件中引入了 p 命名空间。<?xml version="1.0" encoding="UTF-8" ?><beans xmlns="http://www.springframework.org/schema/beans"

2020-06-22 22:37:56 282

原创 Spring 的继承

Spring 的继承注意:与 Java 中的继承不同,不要混淆。Java 是类层面的继承,子类可以继承父类的 结构信息。Spring 是对象层面的继承,子类继承父类 对象 的属性值。因此,Spring 中,不同类之间可以互相继承。如何实现 Spring 继承直接在 bean 标签中添加 parent属性,属性值为 父类 bean 的 id 即可。例子如下:<bean id="sonStudent" class="com.theSunAndSnow.entity.Student" par

2020-06-21 23:35:42 1235

原创 关于网页显示[object HTML标签名Element]的问题

关于网页显示[object HTML标签名Element]的问题今天学习在 JS红宝书上的 10.1.8 节关于 DocumentFragment 类型时,按照实例,大致上敲了一遍代码想要看看效果。<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initia

2020-06-21 11:00:16 3577

原创 Spring 的工厂方法

Spring 的工厂方法IoC 是典型的工厂模式。工厂模式 就是将类创建好后,直接提供给调用者。Spring 中 IoC 通过工厂模式创建 bean 的方式分为两种:静态工厂方法实例工厂方法静态工厂静态工厂指的是:我不需要实例化工厂类,我只需要使用工厂的静态方法即可完成实例的获取。一个用原生 Java 实现的 静态工厂 例子。所谓静态工厂,就是 Map 集合、工厂方法 为 static。package com.thesunandsnow.factory;import c

2020-06-21 00:21:56 482

原创 在JS中使用dataset获取自定义属性注意事项

在JS中获取自定义属性的注意事项参考链接HTML5 中添加了 data-* 的方式来自定义属性,实际上就是在自定义属性名前加上前缀data- 即可,使用这样的结构可以进行数据存放。使用data-* 可以解决自定义属性混乱无管理的现状。一个自定义一旦加上了前缀 data- ,那么在 JS 中就可以通过 elementNodeObject.dataset拿到这个属性,显然 dataset 是 attribute 集合的一个子集。使用 dataset 获得自定义属性值注意事项直接使用 .操作符即

2020-06-20 09:40:08 3373

原创 IoC 自动装载

IoC 自动装载(Autowire)后期在开发过程中经常会用到。什么是 IoC 自动转载?自动装载 是完成 bean 之间的依赖注入,即 DI 方式。为什么要用自动装载?IoC 负责创建对象;DI 负责完成对象的依赖注入,通过配置 property 标签的 ref 属性来完成,同时 Spring 提供了另外一种更加简便的依赖注入方式:自动装载 ,不需要手动配置 property,IoC 容器会自动选择 bean 完成 DI 注入。过去为完成 DI 注入,需要在 property 标签中配置 r

2020-06-16 11:02:43 1205

原创 IoC笔记

IoC (Inversion of Control)什么是控制反转?在传统的程序开发中,需要调用对象时,通常由调用者来创建 被调用者 的实例,即对象是由调用者主动 new 出来的。但是在 Spring 框架中创建对象的工作不再由调用者来完成,而是交给 IoC 容器来创建,再推送给调用者,整个流程完成反转,所以是 控制反转。如何使用 IoC?在 Maven 项目的 pom.xml 中导入 Spring 框架包<dependency> <groupId>org.

2020-06-09 01:08:08 92

原创 圣杯布局

两种 CSS 布局圣杯布局与双飞翼布局是需要掌握的两种重要的布局方式。两种的功能相同,都是为了实现一个两侧宽度固定,中间宽度自适应的三栏布局。常见于电商平台。淘宝圣杯布局来源于国外文章In Search of The Holy Grail,双飞翼布局来源于淘宝 UED遵循特点:两侧宽度固定,中间宽度自适应中间部分在 DOM 结构上优先,以便先行渲染(因为一般情况下中间部分的...

2020-04-18 13:39:29 951

空空如也

空空如也

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

TA关注的人

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