自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 web理论习题

web作业

2022-06-01 08:41:10 148

原创 服务端第一次课—hello world和mysql访问——SpringBoot

服务端第一次课-—hello world和mysql访问——SpringBoot初识SprintBoot上图来自叶波甸学姐的pdf,作为一个新手来说,可以让我大体了解到我要写的代码主要工作在哪一层,并且了解自己以后需要那些部分的知识点。实现hello world1.首先下载ide,这边用的是jetBrain的IntelliJ IDEA 2022.1(学生可免费获取使用许可,详见通过学信网认证的方法)2.保证电脑本地有JAVA JDK1.8及以上3.下载Postman接下来我们打开IDEA,新

2022-05-02 21:59:49 1223 2

原创 vue学习第一次课---安装与运行

vue第一次课安装和运行安装node.js下载网址:https://nodejs.org/en/进入网址直接下载就好更新nmp包管理器打开命令提示符(最好用管理员模式打开吧,反正我是的QAQ)。输入下面两行命令npm update -g //更新npm -v //查看版本安装并运行vue.js找到一个你觉得比较好的位置,创好文件夹,通过命令提示符进入该文件夹然后输入npm init vite@latest my-vue-app --templ

2022-05-01 16:14:16 298

原创 JAVA 接口和抽象类

java抽象类和接口以及区别

2021-12-20 18:54:29 431

原创 JAVA三大支柱之多态

JAVA三剑客之多态多态概念叙述向上转型向下转型抽象类

2021-12-08 18:56:57 184

原创 JAVA 正则表达式

JAVA正则表达式1.String类中有matches用法,用于匹配字符串。eg.“Java”.matches(“Java”);和"Java is fun".matches(“Java.*”),这两个式子的真值都为真2.正则表达式语法下面是一些标准样式,运用还得根据具体问题具体使用3.替换和拆分字符串1.replaceAll, 它会用指定字符替换所有单词中的指定位置的字符2.replaceFirst,它只会替换第一个单词中指定位子的字符3.split,它。。。看图...

2021-10-29 15:41:05 153

原创 第一次eclipse提交github

Eclipse+github+“hello world”1.eclipse下载选择官网下载最好https://www.eclipse.org/downloads/官网网址2.github如果GitHub访问一直出现访问不到的情况课参考https://blog.youkuaiyun.com/weixin_42121805/article/details/107711983通过更改本地hosts让你访问GitHub没那么卡3.hello world在eclipse中添加egit插件点help->

2021-09-25 12:15:08 160

原创 树形相关(参照苏学长博客加一例题poj3107)

树形相关以下内容参照苏学长博客所写,大神链接在这苏学长博客(做的巨好)树的定义树是一种数据结构,它是由n(n>=1)n(n>=1)个有限结点组成一个具有层次关系的集合。把它叫做“树”是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。它具有以下的特点:1》每个结点有零个或多个子结点;2》没有父结点的结点称为根结点;3》每一个非根结点有且只有一个父结点;4》除了根结点外,每个子结点可以分为多个不相交的子树如图树的种类1》无序树:树中任意节点的子结点之间没有顺序关系,

2021-02-28 14:00:54 225

原创 字典树(包含stl的 map和sstream)

字典树当题目给你一些可数的不同字符时,就可以联想到这个字典树。下面是学长给的板子板子const int MAXN=1e6+10;int trei[MAXN][26];int tot=1;bool mark[MAXN];int num[MAXN];void insert(string a){//将传入的字符存进字典树中 int root = 0; for(int i = 0; i<a.length();i++){ int id=a[i]-'a';

2021-02-25 18:53:32 300

原创 单调队列单调栈(以poj2796和poj3250为例)

单调队列单调栈类似stl中的queue和stack结合体,因为我们在顶端和低端都可以操作例题一poj2796题意就是给你一排数,让你求一个区间内数的和乘以最小的那个数的最大值。我们可以设每个数都是它自己区间的最小值,然后向前向后拓展范围,最后在用区间和乘每个数本身取最大值直接看代码#include<iostream>#include<cstdio>#include<cmath>#include<cstring>#include<st

2021-02-24 18:42:15 88

原创 动态规划(进阶)

动态规划(进阶)进阶失败需要更多经验升级doge构成动态规划的三要素:1》状态2》阶段3》决策动态规划求解的三个基本条件1》子问题重叠性2》无后效性3》最优子结构(类似贪心)dp基础LIS(最长上升子序列)状态表示:F[i]表示a[i]为结尾的“最长上升子序列”长度阶段划分:子序列的结尾位置转移方程:F[i] = max(F[j] + 1)边界:F[0] = 0LCS(最长公共子序列)状态表示:F[i][j]表示前缀子串A[1i],B[1j]的“最长公共子序列”长

2021-02-22 20:00:07 230

原创 计算几何

计算几何入门暂时只会套学长模板处理的问题基本上都是关于几何学的实际处理问题。经典的例子有点和点的关系,点和线的关系,线和线的关系,多边形问题的处理,多边形面积等等(暂时还是只会平面套板子),还有立体几何(暂时还不会)一下是好学长给的板子基础部分高精度圆周率const double pi = acos(-1.0);偏差值const double eps = 1e-8;//可自定sgnint sgn(double x) { // 判断x是否等于0 if (fabs(x) < e

2021-02-21 20:24:51 177

原创 博弈论入门

博弈论入门赌狗入门概念博弈论,即公平组合游戏,满足下列一些特征:1》一场游戏有两个玩家,两个玩家轮流行动,是经典的回合制游戏。2》两个玩家的移动按照规则移动,并且两玩家之间的移动不区分身份。3》两个玩家按照最优的决策行动,即给定一个局势,能够一开始就区分出先手必胜还是先手必败。知道的人多的博弈有这么几个巴什博奕尼姆博弈阶梯博弈斐波那契博弈威佐夫博弈巴什博奕经典取石头的问题,规律不难找,找到了题目就出来了例题 HDU - 1846#include<iostream>

2021-02-20 20:32:01 263

原创 LCA入门

LCA入门(最小共同祖先入门)离线tarjan算法(离线处理)将树建好,将询问的值先读入,然后再逐个询问并处理询问的两点,求出共同祖先存入数组,最后直接逐个输出。铁子哥板子const int MAXN=44000;int fa[MAXN], vis[MAXN], ans[MAXN], dis[MAXN];int head[MAXN], tot, degree[MAXN];vector<int> g[MAXN];vector<int> q[MAXN];vector&l

2021-02-04 20:26:03 206 1

原创 基础数论(入门)

基础数论(入门,貌似还没)嫖了学长的pdf常用运算符基本常识(就很…)基本定理(最好有些简单题来把基本定理练熟)常用算法埃氏筛从整数中筛去合数,留下素数考虑给定一个素数x那么很明显所有x的倍数都不是素数,我们只需要枚举一个系数i,将所有的xi标记为合数即可复杂度参考前面的常识~O(n log log n)for(int i=2;i<maxn;++i) { for(int j=i;j<maxn;j+=i) { notPrime[j]=1; } }一点点

2021-02-03 19:56:22 2199

原创 背包

背包一》01背包简单来说就是给你一个有可容m重的背包,然后给你一组物品的价值和重量,让你将这些物品装进背包使价值最大,物品只能拿一次(也就是每种物品只有一个)01背包模板for(int i=n;i>=1;i--){ for(int j=m;j>=v[i];j--){ if(dp[j-v[i]]+v[i]>dp[j]){ dp[j]=dp[j-v[i]]+v[i]; } }}二》多重背包简单来说就是相对01背包每种物

2021-02-02 19:58:47 117

原创 最小生成树

最小生成树最小生成树概念定义给定一张边带权的无向联通图G = (V,E), n = |V|,m=|E|。由V中全部顶点和E中n-1条边构成的无向联通子图被称为G的一棵生成树。边的权值之和最小的的生成树被称为无向图G的最小生成树(Minimum Spanning Tree,MST)1>是一棵树: 无回路,n个顶点一定有n-1条边2>是生成树: 包含全部顶点,n-1条边都在图中3>边的权重和最小主要思想 贪心,每一步要求最小kruskal算法其基本思想是:假设连通网G=(V,

2021-01-31 19:48:48 376

原创 最短路入门

最短路算法(三类)Floyd算法我们定义一个数组 dis[k][x][y] ,表示只允许经过结点 V1 到 Vk ,结点 x 到结点 y 的最短路长度。核心算法,时间复杂度为O(n^3),容易卡tle。for (k = 1; k <= n; k++) { for (i = 1; i <= n; i++) { for (j = 1; j <= n; j++) { dis[i][j] = min(dis[i][j], dis[i][k] + dis[k][j]);

2021-01-30 20:26:33 135

原创 hash入门(以Equations和Extend to Palindrome为例)

hash入门(好像找不到门)HASH一般概念Hash其实是一种散列技术,散列技术是指在记录的存储位置和它的关键字之间建立一个确定的对应关系f,使每一个关键字都对应一个存储位置。即:存储位置=f(关键字)。这样,在查找的过程中,只需要通过这个对应关系f 找到给定值key的映射f(key)。只要集合中存在关键字和key相等的记录,则必在存储位置f(key)处。我们把这种对应关系f 称为散列函数或哈希函数。哈希冲突•在理想的情况下,每一个 关键字,通过哈希函数计算出来的地址都是不一样的。但是在实际情

2021-01-29 21:07:31 191

原创 DP动态规划(入门,以滑雪为例)

DP动态规划(入门,好像没入)能用动态规划解决的问题的特点1> 问题具有最优子结构性质: 如果问题的最优解所包含的子问题的解也是最优的,我们就称该问题具有最优子结构性质2>无后效性 当前的若干个状态值一但确定,则此后过程的演变就之和这若干个状态的值有关,和之前是采取哪种手段或经过那条路径演变到当前的这个若干个状态, 没有关系。2>子问题可重叠性 序偶求解的问题太可是做若干个重叠子问题的逐层递进,每个子问题的求解过程都构成一个阶段解题思路1>找子问题2>确定状态3

2021-01-27 19:23:51 436

原创 贪心算法(以Length of Bundle Rope和Monster为例)

贪心算法(以Length of Bundle Rope和Monster为例)一个字,贪。不管任何后果的贪(貌似也不是)。就是那种,说不出来的那种,贪。干说肯定说不出啥,那就拿个例题Length of Bundle Rope大意就是这个人要拿绳子把箱子两个两个捆在一起这样才能固定(当两个箱子捆在一起就可以当做一个新的箱子来看了),所以每两个箱子就需要一根绳子,这个捆箱子的方式都是横着来捆的, 也就是说捆两个箱子的绳子长度就是两个箱子的长度,让我们怎么捆能让最后需要的绳子长度最小。下面是代码,亲手注

2021-01-26 19:14:38 380

原创 线段树

线段树将数组不断二分成若干个段,然后将各个段的和储存在这个树状数组里面。因为这个线段树组满足下图(画的有点丑)这种规律所以方便我们存数(数字都是下标)建树与整合首先我们先开一个要读入的普通数组和线段树的数组#define MAX 10000int a[MAX];struct QAQ{ //l表示此点所对应的左孩子,r表示右孩子 int l, r, sum;//sum表示l到r的区间和}tree[MAX*4];//开4倍是因为线段树组存了各个区间的sum区间肯定比原数组大在主函数读入

2021-01-25 20:48:46 105

原创 广度优先搜索与深度优先搜索

深广搜(深搜不太熟练)广度优先搜索比如就像下面这张图,起点是1,从1开始向与1相邻的单位扩张(就像从圆心发散的雷达),当与1相邻的单位全部都标记(为2)时,那么就开始下一层搜索,就是标记所有与标记为2的单位相邻的单位(记为3)而这里与2相邻的有3也有1,所以在标记的时候我们需要有一个量来判断这个单位是否被标记。即标记之前,需要加入可标记的条件。一般的条件会有边界(0到n之类的),是否被标记, 是否符合题目中所含的判定条件。值得注意的是这里的单位所在的空间不仅限制在二维, 可多维。一下以三维广搜为例

2021-01-23 19:26:06 222

原创 二分查找(以Aggressive cows为例)

二分查找(找到到判定的条件是关键)一般形式while(left<=right){ int mid = (left+right)/2;//根据题目类型确定中间值和边界值的类型 if(condition(mid))right = mid - 1;//根据实际需求确定满足时左移还是右移 else left = mid + 1;}判定条件bool condition(int n){//一般传进condition的会是mid,但是有些时候会有左右边界和另外需要判定的条件 //根据实际情况编写

2021-01-22 19:35:42 254

原创 并查集

并查集(带权和求集合总数)基本操作const int MAX=1e6+10;int p[MAX];//集合序数int r[MAX];//权将n个序数变为n个集合集合名为他们自己的序数void clear(int n){ for(int i=0;i<=n;i++){ p[i]=i; r[i]=0;//这里地权值视情况而变 }}查找根节点int find(int x) { if (x != p[x]) { int f = p[x];

2021-01-21 19:42:10 67

原创 寒假训练第一天(stl

寒假训练第一天(stl)vector用于定义数组,可用范围大,内容量可变。vector里面仍可以加vector而构成2维数组。以下是可以用在vector里的一些操作1.push_back() 在数组的最后添加一个数据2.pop_back() 去掉数组的最后一个数据3.at() 得到编号位置的数据4.begin() 得到数组头的指针5.end() 得到数组的最后一个单元+1的指针6.front() 得到数组头的引用7.back() 得到数组的最后一个单元的引用8.max_s

2021-01-20 18:07:34 195 1

空空如也

空空如也

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

TA关注的人

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