HTML
1.初识HTML
Hyper Text Markup Language
W3C 万维网联盟
W3C标准包括
结构化标准语言(HTML,XML)
表现标准语言(CSS)
行为标准( DOM,ECMAScript )
2.网页基本信息1<!-- 注释 idea快捷键 ctrl+/ -->
title 网页的标题
meta 描述性标签,用来描述网站的一些信息
meta 用来做SEO ( 搜索引擎优化 )
body 标签代表网页主体
3.网页基本标签123456789101112131415161718192021222324252627282930313233<!--使用什么规范--><!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>基本标签学习</title></head><body><!--标题标签-- ...
Spring
1、Spring1.1、简介==自己了解==
导入 Maven 包
1234567891011121314<!-- https://mvnrepository.com/artifact/org.springframework/spring-webmvc --><dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>5.2.16.RELEASE</version></dependency><!-- https://mvnrepository.com/artifact/org.springframework/spring-jdbc --><dependency> <groupId>org.springframework</groupId> <artifactI ...
SpringMVC
SpringMVCssm: MyBatis + Spring + SpringMVC ==MVC 三层架构==
MVC: 模型 (Dao, Service) 视图 (JSP) 控制器 (Servlet)
dao
service
servlet: 转发, 重定向
jsp / html
1、回顾 Servlet
导入所需依赖:
123456789101112131415161718192021222324252627282930313233<dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> </dependency> <!-- https://mvnrepository.com/artifact/org.springf ...
SpringBoot
SpringBoot1、创建 SpringBoot 项目1.1、利用官网创建
进入 SpringBoot 官网 SpringBoot
划到 Quickstart Your Project
点击 Spring Initializr
如下图
在 Dependencies 处添加项目依赖 最后点击 GENERATE 会自动下载压缩包, 包中即为创建好的 SpringBoot i项目
1.2、利用 IDEA 创建一般开发都是在 IDEA 中创建
1.3、项目结构略
pom.xml 中的一些信息
1234567891011121314151617181920212223242526<dependencies> <!--所有的 SpringBoot 依赖都是使用 spring-boot-starter 开头--> <!-- web 依赖: 自动集成了 Tomcat, dispatcherServlet--> <dependency> <groupId>org.spring ...
叠字
叠字
三个金念鑫(xīn)
三个水念淼(miǎo)
三个火念焱(yàn)
三个土念垚(yáo)
三个牛念犇(bēn)
三个手念掱(pá)
三个目念瞐(mò)
三个田念畾(lěi)
三个马念骉(biāo)
三个羊念羴(shān)
三个犬念猋(biāo)
三个鹿念麤(cū)
三个鱼念鱻(xiān)
三个贝念赑(bì)
三个力念劦(lie)
三个毛念毳(cuì)
三个耳念聶(niè)
三个车念轟(hōng)
三个直念矗(chù)
三个龙念龘(tà、dá)
三个原念厵(yuán)
三个雷念靐(bìng)
三个飞念飝(fēi)
三个刀念刕(lí)
三个又念叒(ruò)
三个士念壵(zhuàng)
三个小念尛(mó)
三个子念孨(zhuǎn)
三个止念歮(sè)
三个风念飍(xiū)
三个隼念雥(zá)
三个吉念嚞(zhé)
三个言念譶(tà)
三个舌念舙(qì)
三个香念馫(xīn)
三个泉念灥(xún)
三个心念惢(suǒ)
三个白念皛(xiǎo)
TinySTL 文档 1.0
TinySTLContainervector模板参数:
123tmplate <class T>class vector{ ... };
T: 数据类型
内部类型表示:
typedef mystl::allocator<T> allocator_type; 分配器类型
typedef mystl::allocator<T> data_allocator; 分配数据内存类型
typedef typename allocator_type::value_type value_type; 内部数据类型
typedef typename allocator_type::pointer pointer; 内部指针类型, 下面的引用类似
typedef typename allocator_type::const_pointer const_pointer;
typedef typename allocator_type::reference reference;
typedef typename allocator_type ...
扫描线(线段树)
扫描线(线段树)关于线段树辅助扫描线的基本思想,已经有很多大佬去详细的解释了,可以去看一下传送门
这里主要说一下线段树辅助扫描线的一些问题以及几种变形
关于数据的离散化,离散化很多时候是为了减小空间消耗,但是我认为在线段树辅助扫描线时,基本都是需要进行离散化的,因为在以x(y)为坐标轴时,维护的是 $[1, m] $ (m不确定),但是显然坐标轴上的区间点坐标不一定是从1开始的,所以要离散出一个区间其范围是 $[1, m]$
在一般线段树进行区间划分的时候,通常采用下面的方式
123mid = l + r >> 1;(操作函数) (l, mid)(操作函数) (mid + 1, r)
但是,在线段树辅助扫描线的时候,这样划分是不可以的,由于线段树维护的是连续区间,而上面划分区间的时候 $mid$ 和 $mid + 1$中间是有距离的,所以会少统计答案导致错误,所以可以给线段树维护的区间换个意义,可以将其理解为维护的是一个个区间
12|___|___|___|___|1 2 3 4 5
比如上面这个图,将 $[1, 2]$ 定义 ...
区间 DP 基础
区间 DP 基础什么是区间 DP, 区间 DP 特征
区间类动态规划是线性动态规划的扩展,它在分阶段地划分问题时,与阶段中元素出现的顺序和由前一阶段的哪些元素合并而来有很大的关系。令状态 $f(i, j)$ 表示将下标位置 到 的所有元素合并能获得的价值的最大值,那么 $f(i, j) = max{f(i, k) + f(k + 1, j) + cost}, cost$ 为将这两组元素合并起来的代价。
区间 DP 的特点:
合并:即将两个或多个部分进行整合,当然也可以反过来;
特征:能将问题分解为能两两合并的形式;
求解:对整个问题设最优值,枚举合并点,将问题分解为左右两个部分,最后合并两个部分的最优值得到原问题的最优值。
这里给出两道例题进行具体分析: 矩阵连乘问题,石头合并问题
矩阵连乘题目描述:
矩阵 $ [A_1,A_2,…,A_n ]$,其中,$A_i$ 与 $A_{i+1}$ 是可乘的,$(i = 1, 2,…, n-1)$。用加括号的方法表示矩阵连乘的次序,不同的计算次序计算量(乘法次数)是不同的,找出一种加括号的方法,使得矩阵连乘的次数最小。
这里我们要先知道 :$m ...
MySQL order by, limit 同时使用问题
MySQL order by, limit 同时使用问题MySQL 文档原文
建议去阅读一下 MySQL 文档
问题如果 order by 排序属性的值不唯一, order by 与 limit 同时使用可能会出现查询结果不同的现象.
例如:
1234567891011121314151617181920212223mysql> SELECT * FROM ratings ORDER BY category;+----+----------+--------+| id | category | rating |+----+----------+--------+| 1 | 1 | 4.5 || 5 | 1 | 3.2 || 3 | 2 | 3.7 || 4 | 2 | 3.5 || 6 | 2 | 3.5 || 2 | 3 | 5.0 || 7 | 3 | 2.7 |+----+----------+--------+mysq ...
hashtable 源码分析
hashtable前言:hashtable 实现一个关联容器, 其在插入, 删除等操作都可以做到 O(1) 实现
哈希表概念哈希方法
直接定址法:取关键字或关键字的某个线性函数值为散列地址。(这种散列函数叫做自身函数)
数字分析法:假设关键字是以r为基的数,并且哈希表中可能出现的关键字都是事先知道的,则可取关键字的若干数位组成哈希地址。
平方取中法:取关键字平方后的中间几位为哈希地址。通常在选定哈希函数时不一定能知道关键字的全部情况,取其中的哪几位也不一定合适,而一个数平方后的中间几位数和数的每一位都相关,由此使随机分布的关键字得到的哈希地址也是随机的。取的位数由表长决定。
折叠法:将关键字分割成位数相同的几部分(最后一部分的位数可以不同),然后取这几部分的叠加和(舍去进位)作为哈希地址。
随机数法
除留余数法:取关键字被某个不大于散列表表长m的数p除后所得的余数为散列地址。不仅可以对关键字直接取模,也可在折叠法、平方取中法等运算之后取模。对p的选择很重要,一般取素数或m,若p选择不好,容易产生冲突。
hashtable解决冲突的办法就是开链.
冲突处理哈希表的冲突处理 ...