自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(27)
  • 问答 (1)
  • 收藏
  • 关注

原创 线索二叉树的C语言实现

线索二叉树的C语言实现。

2022-07-27 18:06:06 333

原创 操作系统第二章-进程的描述与控制

前趋图和程序执行1、前趋图所谓前趋图(PG),是指一个有向无环图,可记为DAG,用于描述进程之间执行的先后顺序,具体见书上P35。没有前趋的结点称为初始结点,没有后继的结点称为终止结点,每个结点都有一个重量,代表当前结点的程序量或程序的执行时间。注:有循环则非前趋图2、程序顺序执行程序由若干程序段组成,在执行时,需要按照某种先后次序顺序执行,仅当前一段程序完成时,才运行后一段程序。特征:1.顺序性 处理机严格按照顺序执行。2.封闭性 程序在封闭环境下运行,除了本程序以外不受任何外界因素影响。3

2021-12-25 15:40:04 1002

原创 【复习】操作系统第一章

概念功能:处理机管理、存储管理、设备管理、信息管理、用户接口作用:计算机系统资源管理者、实现对计算机资源的抽象、用户与计算机硬件及软件之间的接口发展与分类手工阶段、批处理系统、多道程序系统、分时操作系统、实时操作系统单道批处理系统 缺点:内存中仅有一道程序,I/O时CPU空闲,造成资源浪费多道批处理系统 同时将多个作业放入外存,形成一个队列,通过某种算法调度,前一个作业发生I/O请求后产生的CPU空档期进行下一个作业的调度。相比于单道批处理系统,多道批处理系统的资源利用率更高,系统吞吐量更大,但

2021-12-25 15:38:53 1284

原创 Eclipise 配置Tomcat 时右键start tomcat服务器时出现Java虚拟机启动失败且tomcat服务器启动失败解决方案之一

今天配置tomcat时右键start后提示我Java虚拟机启动失败且tomcat服务器启动失败,博客搜了好久,解决方案都试了一遍没有解决,最后发现是下图位置其中working directory的位置出现了问题,它默认给我指定到了桌面,我也没有修改过这里。把这里选定other,选下方第二个选项file system…然后选择tomcat的安装包,apply后点击run即可。...

2021-11-16 20:11:17 594

原创 一道GCD LCM题目题解

题目描述:第一行和第二行输入8个数字,对应每一位第二行都小于第一行,求最小的值xxx令xxx对第一行每一位取余后等于第二行(x不小于第一行的每个数)(x不小于第一行的每个数)(x不小于第一行的每个数)题目分析:首先有式子xxx%a=ba=ba=b,xxx%c=dc=dc=d,先设第一个满足条件的xxx为x1x1x1对于每个满足题意的xxx,都有x=n∗LCM(a,c)+x1x=n*LCM(a,c)+x1x=n∗LCM(a,c)+x1,LCM(a,c)LCM(a,c)LCM(a,c)为aaa和ccc的最

2021-11-08 13:29:33 208

原创 2021CCPC河北省省赛F题(河南省CCPC测试赛重现)

第一遍已知联通判无解,然后根据未知图判多解和唯一解即可#include<iostream>#include<algorithm>#include<stdio.h>#include<string>#include<string.h>#include<vector>#include<queue>using namespace std;const int N = 1e5+10;int n, m, k;do

2021-10-29 10:49:37 709

原创 后缀数组模板记录

#include<iostream>#include<algorithm>#include<stdio.h>#include<string>#include<string.h>#include<math.h>#define PI acos(-1)template<typename T1, typename T2>constexpr auto max(T1 a, T2 b) { return a > b

2021-10-20 21:57:35 102

原创 重定义的一些问题

关于重写函数的一些方法2021.10.13#define 可以 用一个标识符来表示一个字符串,因此称其宏定义。类似如下用法:#define ios ios::sync_with_stdio(false)#define endl '\n'但是使用其改写某些函数时就会出现问题,比如如下代码#define max(a, b) a > b ? a : b在比较max(max(2,1),3)时就会出现问题而导致结果不正确。此时可以加括号来解决一部分问题:#define max(a,b

2021-10-13 21:21:08 141

原创 代码记录-连边树

#include<iostream>#include<algorithm>#include<stdio.h>#include<string>#include<string.h>#include<math.h>#define PI acos(-1)#define max(a, b) a > b ? a : b#define min(a, b) a < b ? a : b#define ios ios::sy.

2021-10-13 15:52:14 88

原创 最大流之最长递增子序列问题

最大流之最长递增子序列问题-ACwing 2180题目描述给定正整数序列 x1,⋯,xnx1,⋯,xnx1,⋯,xn。计算其最长递增子序列的长度 sss。计算从给定的序列中最多可取出多少个长度为 sss 的递增子序列。(给定序列中的每个元素最多只能被取出使用一次)如果允许在取出的序列中多次使用 x1x1x1 和 xnxnxn,则从给定序列中最多可取出多少个长度为$ s$ 的递增子序列。注意:递增指非严格递增。输入格式第 111 行有 111 个正整数 nnn,表示给定序列的长度。接下

2021-09-29 20:34:21 142

原创 上下界网络流-无源汇可行流与有源汇最大流

上下界网络流2021.9.3无源汇上下界可行流之前的最大流讨论一般为有源无下届情况,那么无源汇有上下界可行流应如何求解?首先要做的是消除下边界,应如何做?在有下届情形下,流网络中的任意一条边的可行流应满足fmin(u,v)≤c(u,v)≤fmax(u,v)fmin(u, v) \le c(u, v) \le fmax(u, v)fmin(u,v)≤c(u,v)≤fmax(u,v),由此可变换公式得0≤c(u,v)−fmin(u,v)≤fmax(u,v)−fmin(u,v)0 \le c(u, v)

2021-09-03 16:34:42 314

原创 <学习日记>计算机网络第一章预习记录

计算机网络-第一章前5小节中1.2、1.3、1.5总结2021.08.30一、计算机网络概念教材概念描述:计算机网络(简称为网络)由若干结点(node)和连接这些结点的链路(link)组成。其中结点可为计算机、集线器、交换机或路由器等。网络间通过路由器连接起来,构成一个大的计算机网络,称为互联网(可称为网络的网络)。网络把许多计算机连接在一起,而互联网则把许多网络通过路由器连接在一起。与网络相连的计算机一般称为主机。王道概念描述:计算机网络,是将一个分散的,具有独立功能的计算机系统,通过通

2021-08-30 22:30:37 294

原创 AC自动机build时的一点小优化

//f[p] = 1; 在建立字典树时,若当前节点是一个字符串的结束,标记为1void build() { queue<int>q; for (int i = 0; i < 26; i++)if (st[0][i])q.emplace(st[0][i]); while (!q.empty()) { int k = q.front(); q.pop(); for (int i = 0; i < 26; i++).

2021-08-20 17:49:40 125

原创 网络流-Dinic求最大流(仅做自己复习,写的很不清楚)

网络流-Dinic求最大流2021.8.18原理:网络流-EK求最大流在Dinic求最大流中,d数组变成了步数的记录,pre数组变成了对其上一条路径的记录。bool bfs() { queue<int>q; memset(d, -1, sizeof d); q.emplace(s), d[s] = 0, pre[s] = head[s]; while (!q.empty()) { int t = q.front(); q.pop(); for (int i = head[

2021-08-18 16:20:07 111

原创 网络流-EK求最大流

网络流-EK求最大流2021.8.17网络流最大流解决什么问题?网络流(network-flows)是一种类比水流的解决问题方法(摘自百度百科),最大流是求源点到汇点最大流量的方法。算法原理已知起点到终点,很容易想到深搜\广搜求最大值的方式,但是,在最大流问题中,会出现如下情况:假设1为源点,4为汇点,若对其进行搜索,路径可能有1->2->3->4,随后标记数组有如下标记:那么,此时,流经1-2线路的水流,汇入了3号节点最终流向4号节点,此时3-4路径已经被灌满,2-4路

2021-08-17 10:59:41 209

原创 新一届暑期积分赛题目记录

原题位置忘了,自己造的数据,两题通过率均不超过0.15,但是是过人最多的两道,整体比赛出的有点失败。。D.最近的商店(比赛中叫 不会吧不会有人觉得这不是签到吧)Time limit:1 secondsMemory limit:64 megabytes​ 协会成员马上要入住算协小镇了!他们不想去一个离自己很远的商店,因此每个人都想知道离自己房子最近的商店有多远。​ 他们向你求助,希望你能帮他们做一个标有商店距离的平面图。​ 算协小镇上的房子严格按照n∗mn * mn∗m的点

2021-08-15 18:58:50 120

原创 AC自动机(写的很乱,仅记录留作自己复习)

AC自动机众所周知,AC自(bu)动机是可以自动wa的一种算法(不是首先,AC自动机解决什么问题?------多字符串匹配问题算法原理是什么?其基本思想,是字典树+KMP(仅为思想),字典树建树,随后根据KMP的思路进行点的匹配与跳转(感觉也有点像并查集)。【1】、建树方式与普通字典树一模一样void insert(string str) { int p = 0; for (int i = 0; i < str.length(); i++) { int t = str[i] -

2021-08-12 10:06:05 177

原创 POJ 3321 Apple Tree

Apple TreePOJ - 3321因POJ不支持C++17,因此没提交,自己造的数据都通过了。先说题意,给你一颗树(没说二叉树),让你进行单点修改或某点的子节点数量查询。思路:先dfs,对每个结点重新标号,然后标记其本身与子节点的范围。随后对每个节点的数量初始化为其节点范围大小。然后就可对其进行线段树的修改维护与查询了。修改时可以用异或。代码#include<iostream>#include<algorithm>#include<stdio.h>

2021-08-10 17:31:58 108

原创 平衡树-Treap基础内容

平衡树-Treap2021年8月6日什么是平衡树?平衡树是指任意节点左右子树高度差都小于等于1的二叉树。平衡树干什么?平衡树对序列的排序,寻找元素的位置有很方便的操作算法原理建树Treap通过随机赋予节点一个权值进行建树,由此大概率避免了建树成链的情况。【1】、初始化树初始化时,需要首先新建key值为正负无穷的两个节点,作为树的两端。随后依据随机赋予的权值进行平衡操作。void built() { get_node(-INF), get_node(INF); root = 1; t

2021-08-06 15:33:45 211

原创 2021-08-05学习日记

今天模仿着写了一段treap平衡树,忙的事有点多,没来得及搞懂,明天再看#include<iostream>#include<algorithm>#include<stdio.h>#include<string>#include<string.h>using namespace std;const int N = 100005, INF = 0x3f3f3f3f;int n;struct P { int l, r; in

2021-08-05 21:24:36 81

原创 拓扑排序基础讲解

拓扑排序(TopSort)2021年8月5日文章目录拓扑排序(TopSort)1、算法原理1.1 一个问题1.2 如何通过计算机输出排序结果?1.3 图示1.4 不稳定性1.5 无法排序?1.6 时间复杂度2、算法实现2.1 题目2.2 解法分析2.3 完整代码几道例题A:[POJ - 2367 ](https://vjudge.net/problem/POJ-2367/origin) Genealogical treeB:[HDU - 1285](https://vjudge.net/problem/

2021-08-05 10:25:33 517

原创 可持久化-可持久化字典树

可持久化-Trie可持久化2021年8月2日可持久化干什么?可持久化,就是记录每次更改的版本,以便于后续使用从前的版本。对于字典树,就是对每次加入的字符串按次进行记录。算法原理建树时,每次新增一个根节点。若查找新增字符串到与上一版本有前缀相同的节点,则新增节点,当存在不同时,直接指向上一版本的节点,随后,新增边存不同的字符。(此处不太清楚,可看下图进行理解)例:若要存入about,cat,ratcb,rate四个字符串,则有如下建图:因建立的边是有向边,因此易知,从第i个根节点开始查找,即为

2021-08-02 19:51:22 738 2

原创 字典树-01字典树基础

01字典树什么是字典树?字典树,又叫前缀树,Trie树,通常被用作字符串匹配。它的实现原理是什么?先建立一颗树,对于这棵树上每个节点i,都有存入一个字符(除了0结点以外),这个节点连向其他节点,是其在所有 字符串相应位置出现的下一位字符。对于存图时,从0节点开始遍历,找到其与其他出现过的字符第前缀不同的地方,新增节点。代码如下:int p = 0, k = 0;for(int i = 0; i < str.length(); i++){ int t = str[i] - 'a'

2021-07-30 22:41:32 776

原创 线段树-简单线段树模板

简单线段树2021年7月30线段树是干什么的?更新,维护,查询某区间的某项值,如区间和等。线段树的原理与树状数组类似,线段树通过直接建树来保存区间的结点,如图:如何建图?下面以求序列区间和为例:当存放一个数字时,它需要将每个子区间的值返回到父节点之上,依次返回直到最大的区间上。此时,一个区间接收到的值就是它所有子区间值的和。由于每个区间的大小都为1<<i,0<=i<=n,因此,我们构建的树是一颗二叉树。按行进行标号,易得第i个区间的两个子区间标号分别为i * 2与

2021-07-30 15:26:23 112

原创 树状数组基础原理与模板

树状数组2021年7月291、算法原理树状数组解决什么问题?解决区间上点更新与维护的问题。如更改某些点值求区间和,或求某位前有多少比其小的问题。其实现的原理是什么?首先看图:在这个图中,将每1<<i个数(0<=i<=n)分为一组 ,此时设置函数lowbit(i),此函数将i的2进制中最后一位1前的数字全部删去,如lowbit(6)=4。由图可看出,对于每个i,其都存在在其本身与i+lowbit(i)的区间数组内。例如:5—>101,101+1=110,此时存在

2021-07-29 20:10:20 121

原创 单源最短路SPFA

单源最短路SPFA算法思想:将遍历到且满足条件的点加入队列中,如果遍历到的点在队列,就不加入。对每个结点进行遍历时,更改其是否在队列的状态。在队列内即为true若不在队列内且其值被更改,则加入队列if(minx[s,t]>minx[s,k]+minx[k,t])minx[s][t]=minx[s,k]+minx[k,t]if(st==false){ st=true q.push(t)}每次更新一个点的最小值后,才加入队列,借更新的值更新其他点。若不更新,则不必加入队列

2021-07-28 23:55:21 170

原创 算法学习:最近公共祖先

最近公共祖先1、暴力算法复杂度:O(m * logn)(最大O(n * m));先记录每个层数,再对层数高的依次向上移动,直到找到相同祖先,此处不写代码2、倍增思想复杂度:O(nlog(n)+mlog(n));原理:记录其第2^i个父节点的内容,按二进制进位行运算首先初始化sic[x] [0]为其上第一个父节点,随后从i到所需1<<n,依次根据上一层父节点的父节点进行记录:sic[x][i] = sic[sic[x][i - 1]][i - 1];查找最近公共祖先时,首先将

2021-07-28 23:42:37 291

空空如也

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

TA关注的人

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