自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 makefile for cpp

1、首先把当前cpp文件需要的头文件全都复制粘贴过来2、判断函数逻辑,注意这里只判断每个被调用的函数是否有声明,不判断当前声明是否有对应的定义。3、

2023-08-12 14:20:16 89

原创 virtual继承机制

关于virtual关键字

2022-09-06 20:14:33 932

原创 Git/Github/Gitee/Gitlab

Git第一天 :Mybatis入门Git常用命令工作区、暂存区、本地库分支基本命令远程库基本操作Git常用命令git log:查看完整的历史目录(git reflog是查看精简版本),多了提交作者和提交日期、详细版本号等。git rm --cached 文件名 : 移除暂存区的文件(注:只是移除暂存区的文件,本地区的文件并未删除)。工作区、暂存区、本地库工作区的文件首先必须先add到暂存区,再commit到本地库。1、工作区提交到暂存区之后,如果再对工作区做修改,看git状态的时

2022-07-04 08:36:47 78

原创 leetcode 1494并行课程2 状态压缩详解(贪心坑了多少人!)和子集的巧妙枚举(很好用!)

题目连接:并行课程2题意:有n个有前后驱关系的课程,学习一门课程的前提是在前一个学期学完这个课程的所有前驱课程,一个学期最多可学k门课程,问学完所有的课程最少需要多少个学期?刚开始做的时候入了这道题很大的一个坑,想用拓扑排序和贪心做,我看评论区也有很多跟我一样的,有根据深度贪心的,也有根据长度贪心的,不过大家都很积极都举出了反例,现在我来详解一个这道题的状态压缩写法:大致思路:状态很明显,用一个二进制数表示当前已经学过的课程,0为没学过,1为学过,那么对于当前状态state,首先算出在当前状态下我们可

2021-05-09 21:18:37 246

原创 操作系统全套详解

想到之前学算法的时候,对于每一栏都喜欢自己写一篇文章,而操作系统如此重要,后续还有考研需要,我也准备写一篇操作系统的课程。以下内容提取自王道考研第一天:操作系统的概念操作系统的特征操作系统的发展和分类操作系统的运行机制、体系结构中断操作系统的概念操作系统的定义操作系统的定义和目标首先我们提出三个问题:1、作为系统资源的管理者:有4个功能:处理机管理存储器管理文件管理设备管理2、作为用户和计算机硬件之间的接口接口主要分成3类:命令接口:允许用户直接使用程序

2021-04-08 14:32:57 550

原创 单调栈的详解+图解以及leetcode经典矩形面积和接雨水的详解

单调栈的

2021-04-08 14:27:34 632

原创 web路径问题

之前在写springmvc的时候,在index.jsp页面,比如在controller创了一个@RequestMapping("/hello"),那么在jsp文件上就要写<a href="hello">顶顶顶顶</a>,但是当时看教程的时候老师们的链接都是"/hello",而我有斜杠就不行,这时因为加斜杠的话,找资源就会以服务器的路径为标准,也就是http://localhost:3306,所以比如当前项目名字叫crud,那么我加斜杠访问到的就是http://localhost:33

2020-12-09 20:48:31 87

原创 springmvc的modelAttribute属性的崩溃!

今天在做modelAttribute和springmvc对jsp的表单渲染的时候,出了个问题但是一直找不到原因。第一:没有打开EL表达式就用了${pageContext.request.contextPath},搞了一直错误跳转。第二:这里的表单里的modelAttribute里的user是model里面的,如果model里没有一个key为"user"的值的话,就会出问题了!所以在填表单前,先要在model里存一个对象!!!!!...

2020-12-09 19:10:51 185

原创 Ford(福特)算法和SPFA算法和Dijkstra以及例题实战+全能模板

之前将的Floyd呢是求出所有两点之间的最短距离,复杂度n三次方,只能处理小规模问题,但实际上我们很多时候没必要知道所有两点之间的最短距离,我们只想知道所有节点到a的最短距离,那接下来的Ford、SPFA、Dijkstra就是解决这3个问题的,这三种算法中,SPFA是Ford的进阶版,Ford能处理nm<10的7次方的规模,而SPFA和Dijkstra可以处理更大的,但是呢SPFA可以处理权值为负的,Dijkstra不能处理权值为负的,但是Dijkstra比SPFA更稳定,有时候题目会特意卡SPFA的

2020-11-06 19:57:46 985 1

原创 Floyd个人总结+最小环+传递闭包+做题思路

Flyod主要运用于规模小的情况,比如n<200的时候,通过优化也可以进行300到500的作战,不过很危险,可以运用到负边和判断负圈。Flyod运用的是动态规划的思想,通过枚举两点之间的中间点来求出所有两点之间的代价。比如:令k=1,计算所有节点之间(经过节点1、不经过节点1)的最短路径令k=2,计算所有节点之间(经过节点2、不经过节点2)的最短路径等等。可以把这个过程当成点灯,从节点k=1开始操作,想象点亮了这个灯,并以k=1为中转,计算和调整图上所有点之间的最短距离。很显然,对这个灯的邻

2020-11-05 17:58:04 246

原创 hdu3001压缩dp+3进制

入门的第一道压缩dp,书上的啥的写的全是片段,看了好久也没看懂,不过大致意思我明白了直接找了一道入门题接出来开朗多了,所以我要写一份很详细的解释,让初学者一定能看懂。题目地址我现在下来对压缩dp的理解就是,其实就是一种暴力解法,就像dfs一样,但是不一样的是,dfs所保存的参数是有限的,但是压缩dp就是拿一维出来保存所有的情况,需要对二进制的一些运算符熟练运用和理解。这道题的思路也就是创建一个dp[s][j],表示在s状态下,以j节点为起点的最小代价。这是什么意思呢,我很久之前不知道在哪里看过这样一份

2020-11-03 21:24:21 149 2

原创 hdu4507数位dp公式推导详解

题目地址这道题看了很多的题解才看明白,一开始纠结的不是看不懂他们的题解,是认为自己的没有错但是确实错的,这很难受,不过懂了以后就明白过来其实都是没有真正理解到。题目的大意就是从[l,r]上选出和7无关的数的平方和,如果是求个数的话就是一道很简单的dp了,和7有关被定义为以下3种情况: 1、整数中某一位是7;2、整数的每一位加起来的和是7的整数倍; 3、这个整数是7的整数倍;如果之前已经对数位dp有基础的,就能直接想到条件1可以直接在递归的时候处理,没必要加入dp的状态里。这里和其他人一样,很容易

2020-11-02 19:33:33 285 2

原创 hdu2089数位dp详解代码细节和思路

题目地址一道很经典的数位dp,很适合入门。数位dp的主要思路是“从高位到地位”,这道题的题意是:从[l,r]中,数字中不包含4和62的数有哪些,如果直接暴力的话,复杂度会非常高,但是这种题的范围常常达到10^18,就得用数位dp来解决。比如一个数3567,我们从高位到地位,先计算0000-2999中满足的数字,再计算3000-3499,再计算3500-3559,再计算3560-3567。那么我们创建一个dp[i][j],代表i位数以j开头的有多少个符合的数字,数以首位可以是0,比如000000-09

2020-11-01 15:40:16 335

原创 leetcode双周赛22场第四题三种解法详解

题目传送门本来做这道题是想练一练区间dp的,结果发现这道题区间dp反而麻烦了,但是还是记录一下不一样的写法。第一种:把这道题转换成从3n长度的环形里选出n个数,让这n个数的和最大。先把它当成线性,忽略掉环。dp[i][j][k]表示前i个数中选了j个,第i个有没有选用k来表示。这样转移方程就变成了:dp[i][j][0] = max(dp[i - 1][j][0], dp[i - 1][j][1]);如果当前这个数不取,我们就拿i - 1中取j个数两种情况中的最大值就行了。dp[i][j][

2020-10-31 21:12:50 97

原创 poj1141区间dp+细节处理

题目地址题意:给你一个只包含’()‘和’[]'的字符串,返回把他变成正则序列的最小长度。空的字符串也是。这道题用区间dp做比较容易,但是有需要注意的地方。我们把这道题转化成把这个序列变成正则序列的最小处理次数,处理次数最小,长度当然也就最小。所以我们创建一个dp[i][j]表示把区间[i,j]变成正则序列的最小处理次数,那么转移公式就可以写成:当ch[i] == ch[j]的时候dp[i][j] = dp[i + 1][j - 1],这时不需要增加次数。是当ch[i] != ch[j]时,dp[i

2020-10-31 17:24:16 111

原创 hdu5115区间dp

题目地址题意大致就是:很多头狼,每头狼都有自己的基础攻击力,相邻的狼可以增加攻击力,杀死一头狼的代价就是这条狼当前攻击力,比如三头狼的基础攻击力是(3,4,5),附加攻击力是(4,5,6),则攻击中间一头狼的代价是4+5=9,然后就变成了(3,5),附加攻击力是(4,6),这时攻击第一头狼的代价是3+6=9。现在问你杀死所有的狼的代价。很容易能感觉到这是一个区间dp。我们创建一个dp[i][j]代表把区间[i,j]里的狼全部杀死的代价,然后开始想想状态转移公式,如果我们设想枚举[i,j]里的k作为第一

2020-10-31 16:15:33 141 2

原创 hdu4745区间dp处理环形

题目地址注意这题并不是跳连续的区间,可以跨越,只是不能跨越已经走过的点。根据题意,举个例子:2 1 1 2 4 5 9 8 9的答案应该是 7,为什么是7呢,我们发现在开头有一个回文串,2112,结尾有一个回文串989,这样我们只要从两个回文串的中间开始跳,就能跳过7个格子。其实也就是让我们找左侧和右侧的最长回文子序列(注意不是子串,子串是连续的),然后再枚举[0,n - 1]的区间求出最大值。这就是很简单一个区间dp了,dp[i][j]表示区间[i,j]里的最大回文子序列,状态转移方程就可以写成:

2020-10-31 14:55:12 115

原创 hdu 4632 区间dp解决回文字符串

题目地址这道题的题意主要就是:给你一个字符串,现在要求他的回文子串个数,这里的子串指不更替原本字符串顺序通过删减一些字符,比如ac是abc的子串。创建一个dp[i][j]表示[i,j]里回文子串的个数。当s[i] != s[j]时,dp[i][j] = dp[i][j - 1] + dp[i + 1][j] - dp[i + 1][j - 1]因为这里[i + 1][j - 1]的区间加了两次,为什么用[i][j - 1]和[i + 1][j]来推呢,因为我们考虑到,比如计算[3,10]的时候,我们要

2020-10-30 15:06:36 155

原创 hdu 4283区间dp+栈思想

题目地址刚看到这道题的时候,第一想法竟然是想用最短路来求,但是做的是区间dp的专题,肯定要用区间dp来做了。里面对栈的运用真是太巧妙了,题意大致就是有n个人,每个人有一个D,这个人第k个出场时,他的不满意度就是(k - 1) * D,而主持人可以把人放入一个栈里来调整顺序,让后面的人先出场,问所有人的不满意的和是多少?我们先创建一个dp[i][j],代表区间[i,j]内的最小满意度。一开始我想的是,设一个k,在[i,j]里遍历,表示k当前位置的是第一个,但是发现,k左边的区间和k右边的区间无法准确定

2020-10-30 01:31:31 245

原创 hdu3506环形石头区间dp+平行四边形优化

首先先看一下不环形的题目:石子合并直接附上代码,思路很简单,从小区间求出大区间,手打的很快,样例也很弱,应该没什么问题:#include<iostream>using namespace std;const int maxn = 305;int dp[maxn][maxn];int sum[maxn], arr[maxn];int main() { int n; scanf("%d",&n); for (int i = 0; i < n; i++)

2020-10-29 17:53:03 221

原创 ssm整合

整合的思路:明确路线,是用spring来整合另外两个框架编写Spring框架(编写业务层)首先要创建一个数据库导入依赖:<dependencies> <!-- spring --> <dependency> <groupId>org.aspectj</groupId> <artifactId>aspectjweaver</artifactId> <ver

2020-10-25 19:46:37 131

原创 字符串hash

回归算法第一天:字符串哈希意思就是把字符串反射成一个整型来记录;贴模板:unsigned int BKDRHash(char *str) { unsigned int seed = 31, key = 0; while(*str) { key = key * seed + (*str++); cout << key << endl; } return key & 0x7fffffff;}这里的返回值是

2020-10-25 19:46:16 82

原创 Mybatis

Mybatis框架第一天 :Mybatis入门Mybatis的概述Mybatis入门案例. 自定义Mybatis(这里的主要目的是)是为了让大家了解Mybatis的执行细节第二天 :Mybatis的单表CRUD操作 Mybatis的参数和返回值Mybatis的dao编写Mybatis配置的细节(几个标签的使用)第三天:Mybatis的深处和多表Mybatis的连接池Mybatis的事务控制及设计的方法Mybatis的多表查询 第四天 :Mybatis的缓存和注解开发

2020-10-25 19:45:52 207 2

原创 spring学习概况

前段时间在B站的黑马教程里把spring给过了一遍,内容很多很杂,准备过第二遍来记录细节。

2020-10-25 19:45:46 2356

原创 SpringMvc

Mybatis的概述 Mybatis框架概述三层架构![在这里插入图片描述](https://img-blog.csdnimg.cn/20201015155048997.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQzNjAzNTk4,size_16,color_FFFFFF,t_70#pic_center)![在这里插入图片描述

2020-10-25 19:45:30 184

原创 KMP

这个主要是next数组比较难理解。但是详细视频这个绝对能让你所有的疑惑都排除,绝了。贴一个hdu1686的#include <iostream>#include <string.h>using namespace std;const int maxn = 1e4 + 50;const int maxn2 = 1e6 + 50;char pattern[maxn], text[maxn2];int _next[maxn];void build() { i

2020-10-25 19:43:50 80

原创 ac自动机

ac自动机主要是字典树和KMP算法的结合,主要解决多模匹配问题。KMP算法里面有一个叫做next数组的,现在我们把所有的模式串都建立成一个字典树,每次查询的时候就在这个字典树里面找。思路讲解代码讲解,有错误训练题目以hdu2222首先我们先建立一棵字典树,开辟一个数组trix[20][26],一层其实只有一个字符,只有这个字符的值不为0;接下来主要构思以下fail数组的构造方法。首先,我们要用bfs的方式来一层一层的建立fail数组。对于一个节点,我们先看它的父节点的fail数组有没有指向当前

2020-10-25 19:41:08 70

原创 关于SpringMvc引入js文件失败

之前在jsp文件中想引入js文件一直引入不了,找到原因是已经配置了Spring的类,但是我没有配置监听器来加载spring配置文件,想单独使用SpringMvc,结果发现无论有没有配置<mvc:resources location="/js/" mapping="/js/**"/>都不行,才发现,当不引入Spring配置文件的时候,idea还是会加载类,比如service层里引入dao层的类,会失败报错,虽然不知道这跟spring加载静态文件有什么关系,不过弄了我很久。所以如果配置了spring

2020-10-23 20:01:11 308

原创 素数筛法

埃式筛欧拉筛区间筛1、埃式筛O(nloglogn)最大可以处理1e7数量级的筛选初始队列{2,3,4,5,6,7,8,9,10,11,12…}(1)输出最小的素数2,然后筛掉2的倍数,剩下{3,5,7,9,11,13…}(2)输出最小的素数3,然后筛掉3的倍数,剩下{5,7,11,13…}(3)输出最小的素数5,然后筛掉5的倍数,剩下{7,11,13…}继续以上步骤,直到队列...

2020-03-21 02:07:01 235

原创 GCD、LCM、拓展欧几里得、逆元

这个数论很早就知道,一直没学,昨天好不容易学了出来,很煎熬,怕以后忘了,把自己的想法写出来。先帖一下GCD、LCM的模板:int gcd(int a,int b){ return b == 0 ? a : gcd(b, a % b);}int lcm(int a,int b){ return a / gcd(a,b) * b;// 公式:a / gcd(a,b) * b / gcd...

2020-03-19 14:16:15 172

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

0——1背包0-1背包:建立一个二维dp[num+1][size+1],dp[i][j]指前i件当容量为j时的最佳状况即能装的最多,状态转移方程:j<weight[i],dp[i][j]=dp[i-1][j]j>=weight[i]&&j<=size,dp[i][j]=max(dp[i-1][j],dp[i-1][j-weight[i]+value[i]),...

2020-03-19 13:14:11 90

原创 BFS的记录

对于BFS的一些疑惑首先,BFS是从中心向四个方向蔓延过去,之前首先看到的是leetcode推箱子添加链接描述的这段定义结构体的最优队列的BFSclass Solution {public:struct Node{ Node(int x0,int y0,int bx0,int by0){ x=x0;y=y0; bx=bx0;by=by0; }...

2020-01-17 19:51:39 127

嵌套的CMake样例代码

嵌套的CMake样例代码

2023-08-14

空空如也

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

TA关注的人

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