自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 弄清数据库索引的来龙去脉

从索引建立时发生了什么 讲到 索引与B+树的关系 再讲到索引如何作用于查找

2022-08-16 22:19:05 346

原创 分页存储管理的逻辑地址结构【操作系统】

问题引出今天在学习OS的内存管理内容时,看到了如下所示逻辑地址介绍。(内容为22年王道书P156)看到这种形式之后,我产生了一定的疑惑:逻辑地址难道不是一个数值吗?为什么是这种表的形式?问题分析与解决根据王道视频中关于地址的二进制表示的补充讲解,以及如下所示两个公式的启发,我突然有所领悟:页号=逻辑地址/页面长度页内偏移量=逻辑地址%页面长度回忆起二进制的除法和余数运算法则:如果页面长度是2n2^n2n的话,那么通过二进制除法即为移位n次!那么移位后的数即为商——页号,那些被移位掉的数即

2021-07-22 14:22:16 7105

原创 .exe文件默认打开方式被修改后,所有exe文件全部无效的解决方法

(注:系统版本为Win10 2004版本,其他版本也可以尝试一下)记录一下今天所遇到的一个问题今天下午不小心修改了.exe程序的默认打开方式,于是出现了如下所示的结果。点所有的exe程序都没有用(包括CMD、Powershell、注册表编辑器等所有程序)幸好资源管理器可以正常运转问题分析研究了一两个小时,发现是注册表被改了,只需要把注册表更改过来即可。可是问题是注册表编辑器是.exe格式的文件,根本无法打开它进行修改所以只能用下面的解决方法解决方法在桌面上新建两个文本文档,随便命名。

2021-07-01 19:17:34 13688 52

原创 超简单的扑克算法——Fisher–Yates shuffle算法

首先把此问题抽象成得到一个0~N的随机顺序数组此算法思路为:每次随机选取一个数,然后将该数与数组中最后(或最前)的元素相交换(如果随机选中的是最后/最前的元素,则相当于没有发生交换);然后缩小选取数组的范围,去掉最后的元素,即之前随机抽取出的数。重复上面的过程,直到剩余数组的大小为1,即只有一个元素时结束。实现代码如下:void Poker(int* array, int l) { int i = l; //数组长度length if (i == 0) return

2021-03-12 18:16:12 265

原创 访问百度时报错“DNS_PROBE_FINISHED_NXDOMAIN”的解决方法

此问题的一句话总结:在网络适配器选项中更改dns即可

2021-03-11 17:26:10 2013

原创 Java中new()与newInstance()的区别

new()new()有如下特点:不容易被回收(只有指向对象的引用被移除才会被回收)相对与newInstance()更高效可以调用任何形式的public构造方法说完new()之后再说到newInstance()。这个疑问的提出是我在看“Java的反射机制”时,里面介绍到的反射调用及其中newInstance()方法newInstance()newInstance()有如下特点:容易被回收,故不容易像new()一样存在的内存溢出的风险效率较低只能调用且必须调用到无参数的构造方法

2021-01-20 19:06:08 164

原创 使用Button按钮触发点击事件却导致页面跳转

此种情况的原因是:Button标签的默认的type为submit,会触发form表格的提交过程type值作用submit(默认值)触发事件并提交button仅是触发事件的按钮reset清空数据(即重置)解决方案:将button标签的默认type改为button,使其成为单纯的按钮...

2020-10-28 16:05:53 1474

原创 记忆化搜索算法

概述记忆化搜索算法事实上是一种对递归算法的优化因为在递归算法中有很多重复计算,导致了非常离谱的时间和空间复杂度所以我们采用记住计算结果的方式,能很大程度上减少复杂度例题1 AcWing 901. 滑雪 例题2 AcWing 2067. 走方格...

2020-10-10 23:18:25 1414

原创 算法学习记录——暑假第二周(4)——常见数据结构(堆、栈、队列、映射等)与STL

文章目录

2020-09-14 13:06:47 101

原创 算法学习记录——暑假第二周(3)——Trie树、并查集以及哈希

本文复习内容概括:Trie树和并查集都是针对集合插入/处理/查询操作所提出的高效处理算法其中Trie树侧重于字符串集合的维护,并查集侧重于数字集合的合并Trie树基本思路示意:树的存储方式:声明一个二维数组int son[N][26]。其意义是对于每个节点有26个子节点,但只有当这些节点上有非0值的时候才被视为真的子节点,然后再更新当前位置处理子节点的子节点。【在字符串结尾进行标记可区分abc与abcdf(如图所示)】Tire树的插入与查询操作全局变量声明char str[N];int

2020-08-06 12:11:38 118

原创 算法学习记录——暑假第二周(2)——单调栈、单调队列、KMP

本文目录单调栈与单调队列KMP算法单调栈与单调队列适用题目:适用于’输出每个数左/右边第一个比它小的数’或’定长范围内的最大(最小)值’类型的题目核心思维:在每次都输出最值的题目中,每有一个新值进来,都与目前队列/栈里面的一端极值进行比较,只有有可能被输出出来的东西可以进栈,永远不可能被输出的东西直接从输入阶段就被淘汰,这样下来最终形成队列/栈的值是单调递增/递减的代码略因为单调队列/栈主要的是思路,实现很简单KMP算法KMP类型题目描述:给定一个模式串S,以及一个模板串P,所有字

2020-08-03 11:13:31 82

原创 动态规划——数位统计、树形DP

数位统计DPAcWing 338. 计数问题区间DP的用处主要是统计某数字出现了多少次解决数位统计的问题基本上都需要用分情况讨论动态规划模型分析:

2020-08-02 15:50:13 171

原创 动态规划合集

动态规划分为如下几个模型:最常用的DP模型:背包问题线性DP区间DP、计数类DP树形DP、数位统计DP(某数字出现了多少次)状态压缩DP记忆化搜索动态规划优质博客链接:有图有详解:夜深人静写算法(二)- 动态规划翻译自TopCoder的一篇文章:动态规划:从新手到专家数学归纳法、贪心、DP对比以及DP讲解:六大算法之三:动态规划学习过程随笔:在学习DP上我经过了这四个阶...

2020-08-02 15:48:56 204

原创 算法学习记录——暑假第二周(1)——数组实现单双链表

前言:经典链表节点的实现经典结构体创建节点方式:结构体方法struct Node{ int val; Node *next;}其缺点比较明显:每添加一个节点都要new Node();一下,这样和数组模拟相比会慢很多。所以比较适合在笔试时候用,实际操作的时候用数组可能会更好一些。数组模拟实现单链表单链表能实现的东西:邻接表存储图存储树实现单链表需要声明的东西:数组模拟实现双链表双链表能实现的东西:优化某些问题...

2020-07-31 13:19:54 92

原创 算法学习记录——暑假第一周(4)——双指针算法、位运算、离散化、区间合并

双指针算法双指针算法有效地降低了时间复杂度,是一个十分有价值的思考方法这种算法可以用来求最长连续不重复子序列基本模板for(int i=0,j=0;i<n;i++){ while(j<=i&&check(j,i)) { 具体操作 }}位运算这里主要介绍树状数组的灵魂函数——lowbit函数,此函数用来返回x的最后一位1//返回x的最后一位1,在返回时附带其后面的0//例:14=1110 lowbit(15)返回二进制10,十进制2int lowb

2020-07-11 14:37:26 120

原创 算法学习记录——暑假第一周(3)——前缀和、差分

前缀和前缀和即前n项和。题目i部分代码如下 int n; //数组元素个数 int a[100003],s[100003]; cin>>n; for (int i = 1; i <=n ; ++i) cin>>a[i]; //s[n]为前n项和(前缀和) for (int j = 1; j <=n ; ++j) s[i]=s[i-1]+a[i]; //查询 //区间[l,r]的区间和 cout&lt

2020-07-10 23:57:35 197

原创 算法学习记录——暑假第一周(2)——高精度运算(大数运算)

本文主要内容:高精度算法高精度加法高精度减法高精度乘法高精度除法高精度算法是一种必须熟练掌握的算法,在C++领域中要解决大数问题的基本方式。注:本文的高精度算法的处理顺序除了除法都是从低位到高位,除法是从高位到低位(与竖式计算方法保持一致)本文的数字顺序是大数在符号前小数在后高精度加法核心思想:声明一个进位变量t模拟进位//C=A+B//注意此函数是从高位处理到低位的vector<int> add(vector<int> &A,vecto

2020-07-10 00:08:27 117

原创 算法学习记录——暑假第一周(1)——排序、二分查找

基本复习板块:

2020-07-09 16:30:35 105

原创 力扣第196场周赛题解

比赛心得:一、 判断能否形成等差数列给你一个数字数组 arr 。如果一个数列中,任意相邻两项的差总等于同一个常数,那么这个数列就称为 等差数列 。如果可以重新排列数组形成等差数列,请返回 true ;否则,返回 false 。class Solution {public: bool canMakeArithmeticProgression(vector<int>& arr) { sort(arr.begin(),arr.end()); i

2020-07-08 14:16:28 419

原创 JSP通过数据库语句实现注册和登录功能

1

2020-07-03 10:10:47 1460

转载 IDEA 连接 SQL server 2012 的保姆级教程

如题,本链接中的文章把连接过程讲的非常详细IDEA永远滴神! ^ _ ^链接地址

2020-07-03 09:55:52 629

原创 JDBC中excute、excuteUpdate、excuteQuery的区别

今天在写JSP课设的时候写到注册登录验证的时候发现了一个小问题:写SQL后如何执行的问题从这几个函数的返回值入手在idea中查看sql下的函数返回值类型:可以看到:excuteQuery的返回值为ResultSet即结果集excuteUpdate的返回值为int即影响的行数excute的返回值为BooleanexcuteQuery由于此函数返回的是结果集,不难得出结论:此函数一般是在进行查询即使用select语句时使用excuteUpdate由于此函数返回值是int型,所以此函数.

2020-06-30 11:31:44 3736

原创 使用绝对路径时的雷区——特殊Unicode字符\u202a

今天在跑python代码时,眼看数据已经跑好存入ndarray数组内,只差输出了。但在使用pd.to_excel方法时出现了如下报错:OSError: [Errno 22] Invalid argument: '\u202aC:(+文件路径)这很明显是我使用绝对路径时存在一定的问题。仔细看报错信息,发现有一个特殊的东西:\u202a经查这是一个特殊的Unicode字符,意义是:“从左至右嵌入”。在代码中将其删除后就能顺利运行了。产生这个错误的原因在写代码以及日常使用时,为了贪图方便我经常使用文

2020-05-27 09:20:37 1250

转载 【转】servlet中 service、doGet和doPost 方法的区别

service方法、doGet方法和doPost方法的区别service方法:可以处理get/post方式的请求,如果servlet中有service方法,会优先调用service方法doGet方法: 处理get方法的请求doPost方法: 处理post方式的请求注意:如果在覆写的service方法中调用了父类的service方法 super.service(arg0, arg1);则service方法处理完后,会再次根据请求方式响应的doGet和doPost方法执行所以,一般情况下,是..

2020-05-13 12:03:25 337

原创 JavaBean中文乱码问题解决

今天在敲课本上的JavaBean例子的时候出现了乱码问题,查了一些方法总算解决了这个问题public String getTime() { try { time=new String(time.getBytes(StandardCharsets.ISO_8859_1), StandardCharsets.UTF_8); } catch (Exception ignored) {} return time; }

2020-05-10 10:47:11 2097 1

转载 部分函数依赖、完全函数依赖、传递函数依赖以及第一范式、第二范式、第三范式、BCNF范式

是部分函数依赖还是完全函数依赖,决定于是否有冗余条件来确定一个属性。图的来源以及其他函数依赖和范式内容,见此链接

2020-05-07 21:04:48 2184

原创 数据库自主存取控制方法——授权与收回

授权语句的基本语法create<权限1>,<权限2>……on <对象类型1><对象名1>,<对象类型2><对象名2>……to <用户1><用户2>……[with grant option](可选,作用是确定能否再把此权限授予其他用户)其中with grant option语句授权后不能循环...

2020-05-07 18:09:41 2676

转载 Matplotlib下的pyplot的plot( )函数——传入参数格式以及曲线格式的控制

转载博客链接

2020-04-28 11:26:33 491

原创 高效地求动态区间和——树状数组

树状数组是一种当查询区间和、修改数组值很多的情况下(每次只能修改一个元素的值)可以考虑使用的一种工具。即——快速地求动态的区间和(动态:既在修改又在查询)同为这种查询工具的线段树和树状数组有什么区别两者在复杂度上同级, 但是树状数组的常数明显优于线段树, 其编程复杂度也远小于线段树. 树状数组的作用被线段树完全涵盖,(线段树的每个节点可以包含一些其他信息)凡是可以使用树状数组解决的问题, ...

2020-03-26 00:18:35 148

原创 动态规划——区间DP、计数类DP

区间DP区间DP的特点是状态表示的时候表示的是某一个区间的情况

2020-03-14 00:27:35 261

原创 动态规划——线性DP

所谓线性DP,就是递推方程是有一个明显的线性关系的,一维线性和二维线性都有可能。动态规划里的每一个状态都是一个多维(1-n维)的状态。比如说背包问题就是一个二维的问题,如果我们把它画出来的话会是一个二维矩阵的形式。而我们在求的时候,有一个明显的求的顺序:即一行一行地来求。这样的有线性顺序的叫做线性DP题目1:数字三角形AW898. 数字三角形给定一个如下图所示的数字三角形,从顶部出发...

2020-03-08 22:28:36 526

原创 最长上升子序列子序列问题

链接:AW896. 最长上升子序列 II题目详情给定一个长度为N的数列,求数值严格单调递增的子序列的长度最长是多少。输入格式第一行包含整数N。第二行包含N个整数,表示完整序列。输出格式输出一个整数,表示最大长度。数据范围1 ≤ N ≤ 100000,−109≤数列中的数≤109解法选择本题有两种解法,分别是DP和贪心解法,时间复杂度分别为O(n2)和O(nlogn)...

2020-03-07 21:39:10 222

原创 翻硬币 -- 第四届蓝桥杯

题目描述:标题:翻硬币小明正在玩一个“翻硬币”的游戏。桌上放着排成一排的若干硬币。我们用 * 表示正面,用 o 表示反面(是小写字母,不是零)。比如,可能情形是:**oo***oooo如果同时翻转左边的两个硬币,则变为:oooo***oooo现在小明的问题是:如果已知了初始状态和要达到的目标状态,每次只能同时翻转相邻的两个硬币,那么对特定的局面,最少要翻动多少次呢?我们约定:...

2020-03-03 17:47:36 182

原创 带分数 -- 第四届蓝桥杯

题目描述:标题:带分数100 可以表示为带分数的形式:100 = 3 + 69258 / 714还可以表示为:100 = 82 + 3546 / 197注意特征:带分数中,数字1~9分别出现且只出现一次(不包含0)。类似这样的带分数,100 有 11 种表示法。题目要求:从标准输入读入一个正整数N (N<1000*1000)程序输出该数字用数码1~9不重复不遗漏地组成...

2020-03-03 13:36:03 99

原创 动态规划——背包问题

在写博客之前,先列出两个背包九讲链接以供参考yxc在B站上讲的背包九讲:背包九讲专题以及一篇非常经典的dd大牛的《背包九讲》0 1背包问题完全背包问题多重背包问题混合背包问题二维费用的背包问题分组背包问题背包问题求方案数求背包问题的方案有依赖的背包问题

2020-02-28 13:53:46 410

原创 多重背包问题的二进制优化

前情提要:动态规划——背包九讲——多重背包问题多重背包问题有N种物品和一个容量为V的背包。第i种物品最多有n[i]件可用,每件费用是c[i],价值是w[i]。这题目和完全背包问题很类似,特点是:每种物品都有自己特异的件数、花费、价值。朴素算法:每种物品有n[i]件可以取用,需要枚举每种物品选了多少件(枚举件数不能超过背包容量)for(int i=1;i<=n;i++) fo...

2020-02-27 20:19:10 1301

原创 浮点数的大小比较问题

浮点数的相等比较不能用==、!=而要用fabs(a-b) < 1e-9(即某个阈值)来判断出错过程:今天在做2014年蓝桥杯C++省赛B组的时候遇到了这么一题:奇怪的分式上小学的时候,小明经常自己发明新算法。一次,老师出的题目是:1/4 乘以 8/5 小明居然把分子拼接在一起,分母拼接在一起,答案是:18/45 (参见图1.png)老师刚想批评他,转念一想,这个答案凑巧也...

2020-02-25 16:23:18 747

原创 数学知识——约数(因数)

约数,又称因数。整数a除以整数b(b≠0) 除得的商正好是整数而没有余数,我们就说a能被b整除,或b能整除a。a称为b的倍数,b称为a的约数。约数的判定:试除法众所周知,除了可能有一对同样的数相乘等于x以外,其余的一对约数一个小于sqrt(x)、一个大于sqrt(x)vector<int> get_divisors(int x){ vector<int>...

2020-02-13 14:02:51 1402

原创 组合+排列算法汇总

C(m,n) 组合问题dfs解决:注意:第一次从main函数传来的参数是(0,1)组合的第二个参数是start,dfs是循环开始的标记,这与排列不同如果是已知m n的情况直接改函数中的m n的值int way[30];//全局数组,记录每种方案int n,m;//全局变量n,m,进行操作后求出的是C(m,n)void zuhe_C(int cnt,int start) //首...

2020-02-12 15:59:45 195

原创 数学知识——质数

质数是各种竞赛和考试中十分高频的考点,以下是我总结的一系列质数相关的算法质数的判定:试除法bool is_prime(int x)//时间复杂度O(sqrt(n)){ if (x < 2) return false; for (int i = 2; i <= x / i; i ++ ) if (x % i == 0) return false; ...

2020-02-08 23:11:49 190

空空如也

空空如也

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

TA关注的人

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