面试复习(Java)线程池 线程池的原因 不断的创建和删除线程,会带来较大的系统资源负载 线程缺乏统一的管理,可能会出现无限制的创建线程 线程之间抢占资源 线程池的属性 核心线程数:保持存在的线程数量,这些线程会一直存在,不会被删除 任务缓冲队列:当所有的核心线程都在运行时,新的任务会被加入到缓冲队列中 非核心线程数:当任务缓冲队列满后,将会创建新的线程来执行队列中的任务,且额外创建的线程数不会超过非核心线程数 2021-02-25 学习笔记 #面试准备
面试复习(Git)版本回退 revert 重做某个版本,在当前版本后,重新将某个版本的操作重做一次,得到一个新的版本,将会保留所有其他版本的操作 reset 返回到某个版本,所有在这个版本之后的版本都会被撤销 2021-02-24 学习笔记 #面试准备
面试复习(Linux)查看进程占用系统资源情况 top ps 终端 session 一个终端窗口对应一个会话(session) 一个会话包含多个进程组 一个会话只有一个前台进程组,可以有多个后台进程组 所有在终端内的输入都会发送给前台进程组 当会话关闭时,所有会话内的进程将会被终止 fork 进程的 fork 过程 给新进程分配一个标识符 在内核中分配一个PCB 复制它的父进程的环境(PCB中大部分的内容) 为 2021-02-23 学习笔记 #面试准备
面试复习(数据库)B 树和 B+ 树 B 树的特点 一个节点上包含至多 $m - 1$ 个值 根节点至少有两个孩子 非叶子节点如果包含了 $k$ 个值,则其包含了 $k + 1$ 个孩子节点 所有叶子节点都位于同一层 B+ 树的特点 所有的非叶子节点不再保存值,而是只保存了中间值 所有值保存在叶子节点上 所有的叶子节点通过链表按照顺序进行连接 为什么数据库会采用 B+ 树而不是 B 树或者 AVL 树 AV 2021-02-23 学习笔记 #面试准备
面试复习(计算机网络)OSI 模型 哪七层 应用层:协议与端口 表示层 会话层 传输层:TCP、UDP 网络层:IP、ARP 数据链路层:mac地址 物理层:物理字节流传输 ARP 协议 ARP 协议的作用 将 IP 地址转为下一跳的 mac 地址 TCP 三次握手 序号 数据发送内容 发送方向 客户端状态 服务器状态 0 CLOSED LISTEN 1 SYN=1 seq=x 客户端 2021-02-23 学习笔记 #面试准备
面试复习(操作系统)用户态和内核态 什么时候从用户态转为内核态 程序在用户态执行时,当需要进行系统调用的时候,或者遇到异常,或者外围设备引发的中断,如文件读取与写入,程序报错,键盘输入,网络操作等行为时,程序会从用户态转为内核态,直到执行此行为结束时,再返回用户态 为什么要转至内核态 通过限制用户态的权利,使得有限的系统资源能够受到系统的控制与管理,由系统进行资源的分配 用户态和内核态的切换原理 实质上就是中 2021-02-23 学习笔记 #面试准备 #操作系统
面试复习(C++)C++的特性与轨迹 C++ 的特性(C++11及以上) 需要在不同的平台上进行编译 编译后的程序可以在操作系统上直接运行 可以面对过程和面对对象两种设计方式 可以直接操作本地的系统库 可以直接使用操作系统提供的接口 编译后仅对变量的类型进行了存储,不可以进行类似反射的操作 支持无符号整型 变量类型的字节长度受操作系统影响 支持指针、引用、值传递 没有默认提供的 GC 系统 由程序员负责管理变量所储 2021-02-22 学习笔记 #面试准备
Codeforces Round#699 (Div. 2)暂时还没有 AK,留坑 A. Space Navigation大致题意给你一段在棋盘上的移动指令,问能否通过在不改变原指令顺序,仅删除部分或者全部或者不删除的情况下,到达某个指定地点 分析可以通过指令直接得出可以到达的范围,比如删除所有的“向左”指令后,能够到达的最右,同理可以得到四个方向的极值,最后判断目标地点是否在极值范围内即可 AC code1234567891011121314151617 2021-02-06 ACM&算法 #ACM #Codeforces
清理 WSL2 的磁盘占用方法来源:https://github.com/microsoft/WSL/issues/4699#issuecomment-627133168 由于 vhdx 格式的磁盘镜像文件只支持自动扩容但不支持自动缩容,所以需要手动来实现缩容,即利用 Windows 自带的 diskpart 来实现 2021-01-27 杂项 #短笔记 #WSL
Codeforces Round#697 (Div. 3)自南京区域赛结束之后就一直在准备期末考试,直到最近结束考试之后开始了复建的生活,这场 Div3 除了 D 题因为爆了 int 然后卡了,G题真的没在比赛期间想出来,其他题目都是非常顺利的解决掉了,且只用了一个小时 A. Odd Divisor题目大意给你一个整数,请问它是否存在一个不为 1 的奇因子 题解因为除 1 以外的所有奇因子都可以分解出至少一个奇质因子,那么只需要找到那些不包含奇质因子的数 2021-01-26 ACM&算法 #ACM #Codeforces
Windows 下的 NTFS 驱动器索引 BUGNTFS BUG 警告,请千万不要在 Windows 下的命令行中运行此命令,或者以其他等价的方式访问 1cd c:\:$i30:$bitmap 警告,请千万不要在 Windows 下的命令行中运行此命令,或者以其他等价的方式访问 当你试图进入、访问此目录时,就有机会导致 NTFS 驱动器索引损坏,此问题 2021-01-18 杂项 #短笔记 #Windows #NTFS #BUG
编译原理引言 编译:将高级语言翻译成汇编语言或机器语言的过程 编译过程的五个阶段 词法分析 语法分析 词义分析与中间代码生成 优化 目标代码生成 编译过程的八个部分 词法分析程序 语法分析程序 语义分析程序 中间代码生成 代码优化程序 目标代码生成程序 错误检查和处理程序 信息表管理程序 文法和语言基本概念字母表字母表 $\sum$ 是一个有穷的符号集合,符号包括了字母、数字、标点符号…… 字母表上 2021-01-07 学习笔记 #学习 #课程 #编译原理
计算机网络复习概述计算机网络 21世纪的重要特征是:数字化、网络化、信息化,以网络为核心的信息时代 三类网络:电信网络、有线电视网络、计算机网络 互联网的特点:连通性和共享 连通性:互联网使得上网用户之间,不管相距多远,都可以非常便捷、非常经济地交换信息 共享:信息共享、软件共享、硬件共享 互联网 计算机网络由若干结点(node)和连接这些结点的链路(link)组成 internet 是一个通用名词,它泛 2021-01-07 学习笔记 #学习 #课程 #计算机网络
记一次 Navicat 连接 MySQL 一直报认证错误(Access denied)今天一时兴起,想在 WSL2 里下个 MySQL。方法也很简单,直接 sudo apt install mysql-server本来以为顺风顺水,结果却在 Navicat 连接 MySQL 的操作上出事了 问题Navicat 无法连接上 MySQL 配置情况Navicat Premium 15.0.19MySQL 8.0.22WSL2(Ubuntu 20) 现状终端可以通过sudo mysql连上 2021-01-02 杂项 #短笔记 #MySQL
计算机网络实验复习传输介质颜色A类线(T568A)颜色:白绿/绿/白橙/蓝/白蓝/橙/白棕/棕B类线(T568B)颜色:白橙/橙/白绿/蓝/白蓝/绿/白棕/棕 线分为两种线:直连线和交叉线 直连线:线的两端使用的是相同类的线,即同时使用A类或者B类交叉线:线的两端使用的是不同的线,一段为A类,一段为B类 为什么有两种不同的线输入口和输出口的区别 如果使用的是直连线,则一段的输入端和另一端输入端的位置相同而使用的是交 2020-12-26 学习笔记 #学习 #课程 #计算机网络
WSL1 使用 Docker 一直无法启动问题WSL1 无法正常启动 Docker,Docker一直处于 not running 状态 解决办法WSL1 是伪 Linux,实际上仍然是 Windows 底层,而 Docker 是基于系统底层实现的,这就导致了无法在 Windows(WSL1) 上运行 Linux 版本的 Docker使用 WSL2 则可以正常使用 Docker,目前上述问题在不使用 WSL2 的情况下,暂时无法解决 2020-12-24 杂项 #Docker #短笔记 #WSL
我的ACM脚印2020年12月20日,南京区域赛结束,同时结束的,还有我的两年多的ACM生涯接下来的寒假重心会向着找实习的方向努力,当然明年还有线下的区域赛、EC-finial以及明年的省赛等等,我都会去认真准备。 这篇文章会写什么 关于我 我的ACM简单的回顾 我的ACM成绩 写给新人 ACM到底和数学建模、挑战杯等等的其他竞赛有什么区别 ACM到底带给我什么了 为什么要打ACM 什么样的人适合去打ACM 2020-12-21 ACM&算法 #ACM #总结
【2020HDU多校】第二场1005(HDU6767)New Equipments——费用流【2020HDU多校】第二场1005(HDU6767)New Equipments 题解思路,主要是用了费用流 2020-07-24 ACM&算法 #ACM #HDU
2020牛客暑期多校训练营(第三场)D-Points Construction Problem——构造D-Points Construction Problem思路第一点:千万不要考虑矩阵,千万不要考虑矩阵,千万不要考虑矩阵。因为完全可以是两个三个矩阵和几条链组成,这实在过于难考虑 这道题最难以考虑的地方就是矩阵的构造。这里给出一个思路去解决这个问题。当然可能这个方法不是最正确的,但是结果是最优(毕竟AC了) 计算缺失边数这个应该相对简单,即公式 (n * 4 - m) / 2 的结果 类矩阵结构 2020-07-18 ACM&算法 #ACM #NowCoder
2020牛客暑期多校训练营(第三场)E-Two Matchings——复杂思维与简单dpE-Two Matchings比赛期间写博文,队友我家挖祖坟 数论只会g c d,队友AC我挂机 题目连接 注意本文中的部分字母和原文稍有不同,请注意! 题意定义序列 $a$ ,满足如下要求 长度为 $n$ 的序列 $a$ 由 $1, 2, 3… n$ 组成 $a_{a_i} = i$ $a_i \neq i$ 定义一个字符串的费用为$\sum_{i=1}^{n}w_i - w_{a_i}/2 2020-07-18 ACM&算法 #ACM #NowCoder
2020牛客暑期多校训练营(第二场)I-Interval——最大流转对偶图求最短路题目链接 题意给出一个区间 $[l ,r]$ ,允许进行如下操作: 将 $[l, r]$ 转为 $[l - 1, r]$ 或者 $[l + 1, r]$ 将 $[l, r]$ 转为 $[l, r - 1]$ 或者 $[l, r + 1]$ 且保证 $l \leq r \space and \space l > 0 \space r \leq n$ 但是给出了一系列的限制 $l, r, 2020-07-16 ACM&算法 #ACM #NowCoder
2020牛客暑期多校训练营(第二场)H-Happy Triangle——动态开点线段树+STL+区间化点在WA了好多发之后,终于找到了我不小心写错的bug……我是SB 我的写法与网络上很多人的差异较大,但是个人觉得比其他人的更容易理解。第一次写动态开点的线段树,直接稍微改动了一下原本自己习惯的线段树板子,所以可能与其他板子不同。同时因为是改了线段树的板子,所以反而更容易看懂。其次就是个人感觉我的写法比题解要简单很多,而且码量很小 题意对于一个可重复集合,进行Q次操作。集合起始的时候为空,操作类型如下 2020-07-15 ACM&算法 #ACM #NowCoder
2020牛客暑期多校训练营(第一场)H-Minimum-cost Flow——网络流题目链接 大致题意给出一个费用流图,每条边的流量上限相同且不固定。有$q$个询问,每个询问中给出每条边的流量上限(分数,且保证$\leq 1$)。当图中的流量为 $1$ 个单位的时候,求出此时的费用。 分析首先是询问个数,有$1e5$次询问,则需要预处理整个图,然后O(1)作答才可以过。然后注意到题目中给出的数据规模,图的边数只有$100$条 首先由于边的流量均为分数($\frac{u}{v}$) 2020-07-14 ACM&算法 #ACM #NowCoder
Educational Codeforces Round 80 D. Minimax Problem——二分+二进制处理题目链接 题目大意有n个维度为m的向量,取其中两个进行合并,合并时每个维度取两者之间的较大者,得到的新的向量中,维度值最小者最大为多少 分析首先最需要注意的是m的取值,m最大只有8,那么我们可以二分答案,对于每一个二分值,进行下面的操作,将整个矩阵的每一个元素,如果这个元素大于二分值,则变成1,反正则变成0,把每一个向量压缩为单个二进制数,这样我们最多只会得到$2^8 = 256$种不同的二进制数 2020-02-04 ACM&算法 #ACM #Codeforces
【bzoj2049】[Sdoi2008]Cave 洞穴勘测——线段树上bfs求可撤销并查集题面2049: [Sdoi2008]Cave 洞穴勘测 Time Limit: 10 Sec Memory Limit: 259 MBSubmit: 12030 Solved: 6024 Description辉辉热衷于洞穴勘测。某天,他按照地图来到了一片被标记为JSZX的洞穴群地区。经过初步勘测,辉辉发现这片区域由n个洞穴(分别编号为1到n)以及若干通道组成,并且每条通道连接了恰好两个洞穴。 2020-01-08 ACM&算法 #ACM #BZOJ #SDOI
Codeforces Round 606 E. Two Fairs——图论题目链接 题意给你一张无向图,求出有多少对点对(x, y)满足从点x到点y的所有路径必同时经过点a和点b 分析单点首先考虑假如点a和点b是同一个点的情况 我从任意的一点出发,把所有与点a/b相连的路视为不存在,通过bfs遍历所有可能到达的点。那么这些点之间可以满足不经过点a/b能联通。反之,如果能将其他所有的点均进行bfs,组成类似并查集的数据结构,那么我可以很快得到,所有非同一集合内的点之间必须 2020-01-08 ACM&算法 #ACM #Codeforces
Codeforces Round 612 (Div. 2) C. Garland——DP题目链接贪心模拟了半天,最后放弃了 题意给你一串从$1-n$的序列,其中部分未知(表示为0),补全序列使得相邻数值奇偶性相反的数量最少相邻数值的奇偶性相反:两个相邻的两个数值,其中一个为奇数另外一个为偶数 分析一开始用了贪心,结果卡在第十二个样例,然后改成dp定义dp数组如下 12int dp[120][60][2];// dp[i][j][0/1] 表示第i+1个位置放了偶/奇数,且到第i+1处 2020-01-06 ACM&算法 #ACM #Codeforces
【洛谷】P2444 [POI2000]病毒——AC自动机题目链接 题目描述二进制病毒审查委员会最近发现了如下的规律:某些确定的二进制串是病毒的代码。如果某段代码中不存在任何一段病毒代码,那么我们就称这段代码是安全的。现在委员会已经找出了所有的病毒代码段,试问,是否存在一个无限长的安全的二进制代码。 示例: 例如如果{011, 11, 00000}为病毒代码段,那么一个可能的无限长安全代码就是010101…。如果{01, 11, 000000}为病毒代码 2020-01-05 ACM&算法 #ACM #Luogu
【HDU5934】Bomb——有向图强连通分量+重建图题目大意二维平面上有 n 个爆炸桶,$i-th$爆炸桶位置为 $(x_i, y_i)$ 爆炸范围为 $r_i$ ,且需要 $c_i$ 的价格引爆,求把所有桶引爆所需的钱。 分析通过求有向图的强连通分量,求出所有爆炸块(满足引爆一个块内的任意一个爆炸桶就可以摧毁这个块内的爆炸桶),然后把所有爆炸块视为一个爆炸桶,价值为爆炸块内的价值最小值,然后重建有向图,将新建的有向图所有入度为 0 的点的价值相加 2019-10-13 ACM&算法 #ACM #HDU
Codeforces Round#589 (Div. 2) D、Complete Tripartite题目链接 大致题意把一个图分成三块,要求任意两块之间是完全图,块内部没有连线 分析首先根据块内没有连线可以直接分成两块假定点1是属于块1的,那么所有与点1连接的点,都不属于块1;反之则是块1的然后在所有不属于块1的点内随意找一点k,设定其属于块2,那么所有与点k连接的点且不属于块1,则是块3。 块分完了,然后是判断每个块是否满足条件,我通过下面三条来判断 1、每个块都有点2、每个块内部没有连线, 2019-09-30 ACM&算法 #ACM #Codeforces
【2019沈阳网络赛】G、Special necklace——自闭的物理题这道题让我差点怀疑自己高考没考过物理 题意中 he measures the resistance of any two endpoints of it, the resistance values are all $2a$ 指的是在三角形中电阻为 $2a$ 而不是边上的电阻为 $2a$实际上每条边的电阻R为 $\frac{1}{R} + \frac{1}{2R} = 2a$ 可以求得$R = 2019-09-14 ACM&算法 #ACM #XCPC
【2019南昌网络赛】B-Fire-Fighting Hero题目链接 分析英雄方面很简单,跑一遍 Dijkstra 就行了,但是灭火团队就有点麻烦了。 这里可以借助一下最大流的建边来解决这个问题:我们可以另外找一个点作为起点,然后建立从那个点到每一个团队的起点的边,权值为0,这样就完成了多起点的最短路 恰好我的板子是封装好的 Dijkstra ,我就直接建立两个结构体解决问题,因为点的数量只有 1000 个,空间上已经没有什么顾虑了 AC-Code1234 2019-09-09 ACM&算法 #ACM #XCPC
【2019HDU多校】第九场1006/HDU6685-Rikka with Coin——位运算打表题目链接 题目大意使用10、20、50、100元面额的硬币能分别组成题目给出的面额,需要最少的硬币个数 分析一开始队友想用一堆if-else解决问题,然后WA了无数发…… 我想到了一种比较简单的打表法来解决这个问题,而这个表长度只有==13个int== ==在开始分析之前,我们先不考虑出现 -1 的解。即出现某种情况 mod 10不等于0,因为这个判断非常简单== 定律开始推这个表之前先确定一个显 2019-08-21 ACM&算法 #ACM #HDU
【2019牛客暑期多校第三场】J题LRU management题目链接 题意好吧,这道题我其实看都没看过,队友跟我说了说这道题是模拟题,卡时间。然后我就上了……大致就是维护一个线性表,然后有两种操作:插入、查询插入时,如果这个值(string)之前出现过,则把之前那个值(string)放到线性表的表尾(删去原来那个),但是保存的值(int)仍是之前那个值(int)。如果没有出现过,则把它插入到表尾。如果插入后发现线性表长度超过 m ,则弹出表头的元素。查询时 2019-07-26 ACM&算法 #ACM #NowCoder
【2019多校第一场补题 / HDU6582】2019多校第一场E题1005Path——最短路径+网络流HDU6582链接 题意在一张有向图中,有一个起点和一个终点,你需要删去部分路径,使得起点到终点的最短距离增加(并不要求需要使得距离变成最大值),且删除的路径长度最短。求删去的路径总长为多少 分析一开始理解错题意了,以为是在保证路径变成最长的路径之后,求删去的路径和最小是多少。然后就自闭了很久,还WA了好几发。后来看到题目中是 longer 而不是 longest 。突然醒悟。直接最短路径 +网络 2019-07-23 ACM&算法 #ACM #HDU
【2019多校第一场补题 / HDU6578】2019多校第一场A题1001Blank——dpHDU6578链接 题意有一串字符串,仅由 ${0, 1, 2, 3}$ 组成,长度为 $n$,同时满足 $m$ 个条件。每个条件由三个整数组成:$l、r、x$ 表示在这个字符串的 $[l, r]$ 这个区间内,有且仅有 $x$ 个不同的字符,求问可能的组合有多少种(mod 998244353) 分析题意因为前几天刚刚写了牛客暑期多校第二场,其中有一道题:ABBA(我的题解)感觉有点接近,所以第一 2019-07-23 ACM&算法 #ACM #HDU
C/C++ 实现下标为负数的数组C/C++语言中规定,数组下标为 $[0, n)$但是我们可以通过指针的方式来自定义数组下标例如如下代码: 12int a[10];int *pa = a + 5; 此时,数组 pa 就是一个下标范围在 -5 到 4 的数组 2019-07-22 杂项 #C++ #C
【2019牛客暑期多校第一场】E题ABBA题目链接 大致题意有$(n + m)$个字母A和$(n + m)$个字母B,组成一个长度为 $2*(n + m)$的字符串,并且使得字符串中有$n$个“AB”和$m$个“BA”,求出可能的组合数(mod 1e9+7)例如,n = 1 m = 2时,可以有这样的字符串(并不是全部的字符串):ABBABAABBBAABBABAA上面三个字符串均满足条件 解题思路考虑递推,假设已经有一个字符串满足一定的 2019-07-22 ACM&算法 #ACM #NowCoder
HDU2883 kebab——最大流题目链接 把“时间粒子”作为最大流的计算结果 设置超级源点为 0顾客点范围为 1 - 204时间点 205 - 610超级汇点 615超级源点与所有顾客连线,容量为需求的烤肉数 * 需求的每块烤肉的时间(即此顾客需要占用的总时间粒子)顾客与时间点进行连线,仅当此时间点在顾客等待的时间段内,容量为INF每个时间点与汇点连线,容量为 m 123456789101112131415 2019-07-11 ACM&算法 #ACM #HDU
2019年-西北大学集训队选拔赛——D温暖的签到题题目链接 一道珂朵莉树题,非常有意思 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081#include <bits/stdc++.h&g 2019-07-11 ACM&算法 #ACM