自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(89)
  • 资源 (3)
  • 收藏
  • 关注

原创 初等数论:同余

同余指两个数a和b除以另一个数m后,余数相同,则称a和ba≡bmodm举个例子,10除以3,商3余17除以3,商2余110÷33⋅⋅⋅⋅⋅⋅17÷32⋅⋅⋅⋅⋅⋅1以上两个公式可以统称为107310≡7mod3。

2024-07-24 14:13:56 752

原创 图论:倍增求解最近公共祖先LCA

上面的代码问题是:向上找父亲,一层一层走太慢了,并查集如果不做路径压缩,也是一层一层找父亲,层数过大会导致效率贼低,因此并查集做了路径压缩。记录和保存下来每个节点的不同层级的祖先,按照距离进行划分,距离为1,表示上一级祖先(爸爸);距离为4,表示上四级祖先(即爷爷的爷爷)。最近公共祖先LCA是NOI大纲中指定的提高组的图论部分的知识点,难度系数为6,提高组考察难度为5~8。树是一种特殊的图,有没有想过一个问题,给你一棵多叉树,随机给出两个节点,求解两个节点的最近公共祖先?还记得并查集路径压缩吗?

2024-06-04 15:11:02 946

原创 RMQ问题之ST表

上面方法2中,f[i][j]表示区间[i,j]的最大值,现在重新定义f[i][j]:以i为起点,长度为2^j的区间,如此一来,f数组的第二维就很小了,比如方法二中的f数组第二维应该是n(n<=10^5),由于是二维数组,所以整个数组的大小为10^10,这个数组占多少空间呢?4、第二个区间为:[y - 2^j + 1, y],这个区间的最大值就是f[y - 2^j + 1][j],所以区间[x, y]的最大值为:max(f[x][j], f[y - 2^j + 1][j])。并向下取整转为int;

2024-04-29 17:37:25 614

原创 染色法判定二分图 竟然这么简单

染色法,顾名思义,就是给每个节点染色,由于是二分图,因此我们有两种颜色,比如颜色1和颜色2,通过dfs或者bfs搜索的时候,给每个节点进行染色,如果染色过程中,出现冲突,比如一条边相连的两个节点u和v都是同一个颜色,那么说明不是二分图,返回false即可,如果搜索完后,每个节点都有了颜色,并且没有出现冲突,那么说明就是二分图。我发现洛谷上竟然没有二分图判定的模板题,这很不利于初学者的学习,因此我做了一点微薄的贡献,提供了一道判定二分图的模板题,并配置了20个测试用例。

2024-04-29 09:45:22 173

原创 Floyd算法求多源汇最短路

Floyd算法步骤很简单,简单粗暴的三层循环,第一层循环遍历中间节点k,第二层循环遍历起点i,第三层循环遍历终点j,目的是从节点i走到节点j,如果可以通过i走到k,然后从k走到j,且这种方式的权值更小,那么更新dist[i][j] = dist[i][k] + dist[k][j]。初始化dist[i][j]为节点i到结点j的距离,那么dist[i][j]=0,节点到节点自己的距离肯定为0,其次,如果i和j相连,那么初始值为两节点边的权值,dist[i][j]=w,否则均为无穷大INF。

2024-04-29 09:42:38 305

原创 最小生成树算法:Kruskal算法 真香

说明:CSDN和公众号文章同步发布,需要第一时间收到最新内容,请关注公众号【比特正传】。之前的图论合集文章中讲了图的存储遍历、最短路等算法,文章链接如下。

2024-04-10 10:11:26 264

原创 CSP-S 真题:格雷码

说明:CSDN和公众号文章同步发布,需要第一时间收到最新内容,请关注公众号【比特正传】。题目来源:CSP-S 2019年 T1题目考察点:递归、搜索题目链接:https://www.luogu.com.cn/problem/P5657。

2024-03-24 21:06:49 438

原创 拓扑排序 很简单

Step2:针对Step1中找出的节点,依次访问这些节点的相邻结点,并将其相邻结点的入度-1(相当于删除了当前入度为0的点,所以相邻结点的入度会-1),然后判断相邻结点的入度,如果-1后等于0,那么将其加入队列。这道模板题呀,很简单,由于题目没有说,因此不需要考虑一些异常情况,比如图的连通性,如果在拓扑排序中有冲突怎么办等等,因此我们只需要考虑它的正常情况就行了,非常适合新手练习拓扑排序,自己动手完成吧。理解了这道题的意思,就很容易理解拓扑排序是什么意思了。入度:在有向图中,指向自己的箭头的个数。

2024-03-13 07:40:57 370

原创 Trie树(字典树)就是这么简单

说明:CSDN和公众号文章同步发布,需要第一时间收到最新内容,请关注公众号【比特正传】。任何一种数据结构或者算法都是为解决某一个问题而诞生的,Trie树也是如此;比如:给n个字符串,需要查询q个字符串,判断这q个字符串是否存在于n个字符串中,或者q个字符串是n个字符串中多少个字符串的前缀。如下图所示:最简单的办法就是遍历n个字符串,然后依次判断,如果满足要求,数量+1,最终输出结果。但是看看题目数据范围,这样做肯定会超时,因此可以用Trie树来解决该问题。

2024-02-26 09:28:52 811

原创 CSP-S 2023 密码锁

说明:CSDN和公众号文章同步发布,需要第一时间收到最新内容,请关注公众号【比特正传】。

2024-02-11 10:07:38 620

原创 贪心 模拟:CSP-J 2023 公路

说明:CSDN和公众号文章同步发布,需要第一时间收到最新内容,请关注公众号【比特正传】。上篇文章发布后,收到公众号后台私信,让我多写一些第2、3、4题的题解,读者如此合理的要求,必须满足。今天来看一篇2023年的普及组的第二题:公路。

2024-01-29 20:58:10 1167

原创 洛谷 P9748 [CSP-J 2023] 小苹果

即现有苹果3个一组,划分完后,还剩1个苹果,那么此次取走的苹果数量为n/3+1,剩余的最后一个苹果在本次就会被取走,哎等等,那我们想知道最后一个苹果(即编号为n的苹果)什么时候被拿走,不就是第一次出现mod为1的情况下嘛。有了上面三种情况,我们就可以不停更新剩余的苹果数量,直到为0即可,在更新过程中,也要找出第一次出现上面的【情况2】,即为第n个苹果拿走的时间。即现有苹果个数刚好为3的倍数,那么此次取走的苹果数量为n/3(每3个一组,一组取一个,共n/3个);

2024-01-26 10:37:33 608

原创 洛谷 P2415 集合求和

思考一下:对于所有长度为m的子集而言,任意一个元素出现的次数和是相等的,比如,m为1时(即子集长度为1),每个元素只出现一次;:假设必选a1, 那么因为子集大小只有1,所以其他【n】个元素选【0】个即可,即元素a1在子集大小为【1】的集合中,出现了。:假设必选a1, 那么在剩余的【n】个元素中可以再选【m-1】个元素即可,即元素a1在子集大小为【m】的集合中,出现了。:假设必选a1, 那么在剩余的【n】个元素中可以再选【1】个即可,即元素a1在子集大小为【2】的集合中,出现了。这个答案等于多少呢?

2024-01-18 20:11:26 447

原创 洛谷 P9868 [NOIP2023] 词典

思考一下,如果需要比较两个字符串的字典序大小,不需要比较整个字符串,比如当前用单词word1和其他n-1个单词比较的时候,只需要使用word1的最小的字母和其他单词的最大的字母比较,如果word1的最小字母大于等于其他某个单词wordx的最大字母,那么word1的最优字典序一定大于wordx的最优字典序,直接输出0,结束比较,否则word1的最小字母小于wordx的最大字母,那么可以让word1的最小字母排最前面,wordx的最大字母排最前面,即可满足题目所说的性质。本题考察点:【贪心、枚举、模拟】

2024-01-16 20:45:12 506

原创 NOIP2017 提高组 奶酪(DFS、BFS、并查集)一题三解

该题可以通过搜索来实现,找出所有的入口(即与下表面相切或相交的空洞)作为搜索的入口,在搜索的过程中,对已经搜过的空洞进行标记,每搜到一个空洞,判断是否为出口(即该空洞与上表面相交或相切),如果是,输出Yes,然后return,否则继续搜索,直到以所有入口为起点搜索完,还未找到出口,则说明不能从入口到出口,输出No并返回即可。A1:如果为入口,则空洞的纵坐标z小于等于半径r;题意:老鼠是否可以从下表面的空洞一直沿着空洞走到上表面,如果可以,输出Yes,否则输出No;Q1: 如何判断一个空洞为入口或出口呢?

2024-01-11 21:27:29 513

原创 二分再也不用担心搞不清楚了,一文理解透二分

有越界的风险,导致求解的mid错误,所以以后计算mid的时候,强制统一用mid = left + (right-left)/2;表示将最优解不保留在当前区间[left, right]中,因此当循环结束后,区间一定为空,即left > right,即使区间中只剩一个元素,也要判断是否为最优解,直到区间为空,因为最优解不保留在区间中,所以需要一个变量ans来保存最优解,所以一定会有right=mid-1(最大值最小问题)或者left=mid+1(最小值最大问题),没有风险,对于两类问题均可使用;

2024-01-07 21:32:46 979

原创 洛谷 P1873 砍树 (二分 简单)

上一部分分析了题目的求解方法并可以通过暴力的方法依次从maxH到0遍历,找到第一个满足题目要求的高度即可,试想一个问题,如果某个高度hi砍树不能满足砍掉的树的高度和大于等于M,那么对于大于等于hi的高度hj来说也无法满足题意,理解了上面这个特性就可以通过二分来快速求解高度h了。也很简单,给你一个高度mid,遍历所有树木的高度,用sum记录砍掉的树的高度和,则如果当前树的高度小于mid,则没有得到树木,否则,在当前树上可以砍下树的高度减掉mid的差值的高度的树木,最终只需要判断sum是否大于M即可。

2024-01-05 13:08:31 647

原创 一文搞懂 归并排序及求解逆序对 真简单

试想在归并排序的合并数组的时候,如果出现左子数组中的a[i]大于右子数组中的a[j]时,由于左子数组是有序的,因此左子数组中a[i]后面的元素都大于a[j],因此以a[j]为y的逆序对有(a[i], a[j]), (a[i+1], a[j]),...,(a[mid], a[j]), 共mid-i+1个;Step1:通过递归的方式,将数组进行划分(每次将一个数组从中间一分为二,左子数组和右子数组),直到子数组的长度小于等于1停止,此时子数组一定是有序的(长度小于等于1的数组一定有序);

2024-01-04 12:45:19 548

原创 洛谷 P1077 [NOIP2012 普及组] 摆花

NOIP真题第二讲:摆花

2023-12-21 09:34:20 372

原创 洛谷 P1087 [NOIP2004 普及组] FBI 树

NOIP 真题第一讲:FBI 树

2023-12-18 21:56:56 378

原创 洛谷P1036 [NOIP2002 普及组] 选数

洛谷P1036 [NOIP2002 普及组] 选数 题解

2023-12-16 22:46:39 336

原创 快速幂 很简单 一文秒懂

数学知识第二讲:快速幂

2023-12-15 08:12:19 333

原创 Bellman-ford算法与SPFA算法求最短路

图论第三讲:Bellman-ford与SPFA求最短路

2023-12-07 10:12:08 365

原创 BFS 洛谷P1443 马的遍历

广度优先搜索BFS第一讲:马的遍历

2023-12-05 14:12:37 391

原创 一文看懂Dijkstra 算法求最短路

图论第二讲:Dijkstra求最短路

2023-12-04 16:13:08 344

原创 深搜DFS 洛谷 P1706 全排列问题

深度优先搜索DFS(第一讲):全排列问题

2023-12-04 16:12:28 437

原创 树形DP 洛谷P1352 没有上司的舞会

树形DP-没有上司的舞会

2023-12-04 16:11:41 352

原创 状态压缩DP 洛谷P2622 关灯问题

状态压缩动态规划-关灯问题

2023-12-04 16:11:09 336

原创 状态压缩DP 洛谷P1441 砝码称重

https://mp.weixin.qq.com/s?__biz=MzkwODU5NzU5Mw==&mid=2247483831&idx=1&sn=49b5cd7e003458e8f7d6ae204b30dbf4&chksm=c0c6c181f7b14897e0606e38dde3dfe79561dc37ddbdc0b1b16e802ace496fa9ff23f542482a&token=219447487&lang=zh_CN#rd

2023-12-04 16:10:15 338

原创 完全背包问题

背包专栏(二)-完全背包

2023-12-04 16:09:24 324

原创 挖地雷 洛谷 P2196

线性动规-挖地雷(洛谷 P2196)

2023-12-04 16:08:52 347

原创 01背包问题

背包专栏(一):01背包

2023-12-04 16:08:16 305

原创 最长上升子序列 洛谷B3637

动态规划-最长上升子序列

2023-12-04 16:07:31 440

原创 线性筛质数,一文必看懂

数学知识第一讲:线性筛质数

2023-11-30 10:28:55 352

原创 洛谷P1775 石子合并

欢迎关注公众号【比特正传】,后期会分享更多c++、数据结构和算法相关内容。

2023-11-02 17:33:18 96

原创 洛谷 P1435 [IOI2000] 回文字串

欢迎关注公众号【比特正传】,后期会分享更多c++、数据结构和算法相关内容。

2023-11-02 17:23:44 94

原创 快速幂应用之剪绳子问题

快速幂的讲解与应用

2023-06-14 10:54:44 479

原创 RocketMQ 闪退问题

第一次使用RocketMQ的时候,傻傻的跟着别人的博客走,一切正常,然后通过配置文件/conf/broker.conf启动broker的时候开始出问题了nohup mqbroker -c conf/broker.conf执行上面的语句,开始闪退,通过查阅日志文件,发现在broker.conf中配置的保存数据的路径没有创建(我以为rocketmq通过检查目录,如果没有会自动创建),然后我手动创建了目录文件,再次运行,成功了。broker.conf 配置信息如下#集群名称brokerC.

2021-06-25 13:57:32 1306

原创 轻松理解内核态与用户态

学习目标:提示:这里可以添加学习目标例如:一周掌握 Java 入门知识学习内容:提示:这里可以添加要学的内容例如:1、 搭建 Java 开发环境2、 掌握 Java 基本语法3、 掌握条件语句4、 掌握循环语句学习时间:提示:这里可以添加计划学习的时间例如:1、 周一至周五晚上 7 点—晚上9点2、 周六上午 9 点-上午 11 点3、 周日下午 3 点-下午 6 点学习产出:提示:这里统计学习计划的总量例如:1、 技术笔记 2 遍2、CSDN 技术博客

2020-08-22 17:32:21 447

原创 利用telnet登录SMTP服务发送邮件的demo

再一次复习(预习)计算机网络,看的是《计算机网络 自顶向下方法》,做了本书的一个小实验,用telnet登录邮件服务器发送邮件,下面做一个记录。第一步:首先打开命令端,输入telnet第二步:输入o smtp.qq.com 25o是open的简写,打开qq邮箱的smtp服务器,25为专用端口号下面将后面的命令截图全部展示出来,然后一条一条解释如上所示,箭头...

2019-11-24 18:48:05 1560 1

LinearRegression.rar

利用python代码手动实现线性和二次函数的反向传播,利用梯度下降算法实现参数更新

2019-06-03

模拟进程调度(GUI实现)

操作系统上机作业,模拟实现进程创建,进程调度,进程阻塞,进程唤醒和进程撤销,从文件读取初始化进程,将过程存入文件均已实现,用pyqt5实现GUI界面,有良好的用户交互性

2019-05-17

空空如也

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

TA关注的人

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