分量 算法 笔记tarjan

2月构建之法其余阅读笔记

第十二章 用户体验 12.1 用户体验的要素 用户的第一印象 从用户的角度考虑问题 软件服务始终都要记住用户的选择(长期的使用只会使软件更好用) 短期刺激 长期影响 不让用户犯简单的错误 注重用户体验和质量 情感设计 12.3 评价标准 对于一个软件的用户界面,我们有没有什么评价标准呢?可以参考费茨 ......
笔记

2月构建之法九十章阅读笔记

第九章 项目经理 9.1PM是啥 软件团队里除了能写代码、测试代码和画图做设计的成员,还有一类角色,不做上面这些事情但也很重要,我们叫他们项目经理——PM PM的M就是Manager,但是P有这几种:Product Manager、Project Manager、Program Manager,在不 ......
笔记

2月构建之法七八章阅读笔记

第七章 MSF 微软公司中关于软件开发的思想和宣言有一个方法论——微软解决方案框架(Microsoft Solution Framework,MSF),也就是微软推荐的软件开发方法 7.2 MSF基本原则 推动信息共享与沟通(Foster open communications) 为共同的远景而工作 ......
笔记

3月代码大全阅读笔记2

第 7 章:高质量的子程序 7.1 为什么要创建子程序? 降低复杂度,让每段代码都具有单一职责; 引入中间、易懂的抽象; 避免代码重复; 支持子类化; 隐藏顺序; 隐藏指针操作; 提高可移植性; 简化复杂的布尔判断:把一切复杂的判断放入单独的函数中; 改善性能:性能一次优化,能遍布到所有调用点; 确 ......
代码 笔记 大全

2023.4 做题笔记

出于一些原因,只有 4.21 往后的题。 LOJ6481 Visual Python++ 考虑贪心。非常容易想到,从左往右扫,每次扫到一个右下角时就匹配一个在它上面但是高度差最小的左上角,如果有多个同一高度的可以不用考虑顺序,因为边界重合的情况是不合法的。 对于一种匹配方案,怎么判断它合不合法呢?我 ......
笔记 2023.4 2023

【字节二面算法】NO662 二叉树最大宽度

[字节二面算法] 662. 二叉树最大宽度 给你一棵二叉树的根节点 root ,返回树的 最大宽度 。 树的 最大宽度 是所有层中最大的 宽度 。 每一层的 宽度 被定义为该层最左和最右的非空节点(即,两个端点)之间的长度。将这个二叉树视作与满二叉树结构相同,两端点间会出现一些延伸到这一层的 nul ......
宽度 字节 算法 662 NO

「学习笔记」SPFA 算法的优化

与其说是 SPFA 算法的优化,倒不如说是 Bellman-Ford 算法的优化。 栈优化 将原本的 bfs 改为 dfs,在寻找负环时可能有着更高效的效率,但是最坏复杂度为指数级别。 void dfs_spfa(int u) { if (fg) return; vis[u] = true; for ......
算法 笔记 SPFA

【学习笔记】光速幂

哦哦哦今天才了解到这个神秘科技 只有在底数和模数相同的情况下才能用。 预处理出$a^1,a^2,a^3...a^s$和$a^{2s},a^{3s},a^{4s}...$那么类似BSGS可以$O(1)$出结果。 预处理复杂度$\sqrt{p}$。 ......
光速 笔记

线索化二叉树的递归算法

// 线索化二叉树的递归算法 #include <stdio.h> #include <malloc.h> typedef struct BiTNode { int data; struct BiTNode *lchild, *rchild; // 存储二叉树的左孩子和右孩子 } BiTNode, ......
算法 线索

读SQL进阶教程笔记14_SQL编程要点

1. 消灭NULL 1.1. NULL惹人讨厌的原因 1.1.1. 进行SQL编码时,必须考虑违反人类直觉的三值逻辑 1.1.2. 指定IS NULL、IS NOT NULL的时候,不会用到索引,SQL语句执行起来性能低下 1.1.2.1. 1 + NULL = NULL 2- NULL = NUL ......
进阶教程 要点 SQL 笔记 教程

django笔记

**主流web框架总结:** a socket b 路由关系 c 模板字符串替换(模板语言) django a用别人的 b自己写的 c自己写的 flask a用别人的 b自己写的 c用别人的(jinja2) tornado a自己写的 b自己写的 c自己写的 另一个维度: django 其他 创建D ......
笔记 django

m分别使用meanshift和camshift两种算法实现人员跟踪并输出人员移动曲线matlab仿真

1.算法仿真效果 matlab2022a仿真结果如下: 2.算法涉及理论知识概要 meanshift算法其实通过名字就可以看到该算法的核心,mean(均值),shift(偏移),简单的说,也就是有一个点 ,它的周围有很多个点 我们计算点 移动到每个点 所需要的偏移量之和,求平均,就得到平均偏移量,( ......
人员 算法 曲线 meanshift camshift

pwn刷题笔记(格式化字符串)

攻防世界:CGfsb checksec查看保护机制,开启了NX和Canary,32位ELF。 反汇编代码如下: int main(){ char buf[0x7E - 0x76]; ebp-7E short int anonymous_0; ebp-76 char s[0x74 - 0x10]; e ......
字符串 字符 格式 笔记 pwn

四月读书笔记3

四月读书笔记3 流程图是被吹捧得最过分的一种程序文档。事实上,很多程序甚至不需要流程图,很少有程序需要一页纸以上的流程图。”“现实中,流程图被鼓吹的程度远大于它们的实际作用。没有一个有经验的编程人员,在开始编写程序之前,会例行公事地绘制详尽的流程图。在一些要求流程图的组织中,流程图总是事后才补上。” ......
笔记

文心一言 VS chatgpt (13)-- 算法导论3.1 8题 3.2 1题

八、可以扩展我们的记号到有两个参数n和m的情形,其中的n和m可以按不同速率独立地趋于无穷。对于给定的函数g(n, m),用O(g(n, m))来表示以下函数集: O(g(n, m)) = { f(n, m): 存在正常量c、和,使得对所有n>=n0或m>=m0,有 0<=f(n,m)<=cg(n,m ......
文心 导论 算法 chatgpt 3.1

构建之法阅读笔记3

服务化架构:随着系统复杂度的提高,单体应用已经无法满足业务需求,因此需要将系统拆分成多个小的、自治的服务,以提高系统的可扩展性和灵活性。去中心化思想:在设计系统时,应该避免单点故障,采用去中心化的思想,将负载分散到多个服务器上。同时,要考虑数据的一致性和复制策略。弹性设计:系统必须具备弹性,能够自动 ......
笔记

OpenResty学习笔记02:为服务增加waf功能

一. WAF简介 Web应用防护系统(也称为:网站应用级入侵防御系统。英文:Web Application Firewall,简称: WAF)。 目前国内的几大云服务商都提供了企业级的WAF产品,且均价格不菲。 好消息是,在 OpenResty 生态中,有一款开源的WAF可供我等学习,开源万岁! 二 ......
OpenResty 功能 笔记 waf

「学习笔记」Floyd 的应用

求最短路 for (int k = 1; k <= n; ++ k) { for (int i = 1; i <= n; ++ i) { for (int j = 1; j <= n; ++ j) { f[i][j] = min(f[i][j], f[i][k] + f[k][j]); } } } ......
笔记 Floyd

人月神话阅读笔记3

第十三章涉及软件开发中普遍性的问题。尽管每个软件项目都有其独特之处,但是软件开发中也存在许多普遍性的问题,如进度管理和技术选型等。作者提出了一些建议,如制定标准的进度计划和技术选型标准等,用以避免类似的问题在未来出现,并使软件开发工作变得更加高效、可靠和可预测。第十四章提出了两种软件开发文化之间的对 ......
神话 笔记

树上启发式合并学习笔记

最近几天了解到一个很神奇的算法——dsu on tree,看上去没多快实际上很快,这叫低调。 好久不更了,至于反演,5 月再更吧,4 月的最后一天分享一下 dsu on tree。顺便闲话一句,4/26 是我生日,也是历史二模。 重链剖分 dsu on tree 这类 dsu on tree 适用于 ......
笔记

构建之法阅读笔记

读完《构建之法》这本书,深感其中所承载的思想和方法对于现代软件开发具有极大指导意义。这本书不仅让我们认识到复杂系统构建过程中的挑战,更提供了一种可行的应对方式——构建之法。这个方法的核心是奉行简单、健壮、可维护、可升级的设计准则,强调用集成测试的方式逐步构建高度模块化、可重用性的代码,从而优化整个系 ......
笔记

数据结构与算法复习--(2)

#算法和算法分析 算法的定义 对特定问题求解方法和步骤的一种描述,它是指令的有限序列。其中每个指令表示一个或多个操作。 算法的描述 自然语言:英语、中文 流程图:传统流程图、NS流程图 **伪代码:类语言:**类C语言 **程序代码:**C语言程序、Java语言程序 算法与程序 算法是解决问题的一种 ......
数据结构 算法 结构 数据

数学学习笔记

学习了基础的数学,发现我的数学还(fei)算(chang)可(la)以(ji),不多说了,开启美妙的数~~xiao~~学之旅吧。 进制转换 首先是我们熟悉的进制转换,就是n进制转m进制。 要把n进制数转化十进制数,再把十进制数转化为m进制数。把n进制数转换为十进制数要先模再除,具体过程就不赘述了,把 ......
数学学习 数学 笔记

构建之法阅读笔记2

《构建之法》这本书有哪些优点?又有哪些不足之处? 优点:1、语言生动有趣,采用情景式、对白式的方式对在软件工程相关的学习中重现场景,更好的解决了读者所遇到相类似的问题。 2、注重实践。在大部分时候,大学的计算机专业,理论和实践是分离的,甚至只注重理论,讲一堆概念,定义,然而这本书与现实项目接轨,既讲 ......
笔记

构建之法读书笔记03

第二章 个人技术和流程 2.1 单元测试 ①重要的单元测试:有效解决程序员对模块功能的误解、疏忽或不了解模块的变化之类的问题,使自己负责的模块功能定义尽量明确,模块的质量得到稳定的、量化的保证。 ②好的单元测试的标准: 在最基本的功能/参数上验证程序的正确性 单元测试必须由最熟悉代码的人(程序的作者 ......
笔记

构建之法读书笔记-4月-2

《构建之法》一书共分四部分,详细介绍了具有创新性、高度可靠性的软件架构设计的方法及工具, 这里主要介绍第三部分和第四部分的内容。 第三部分介绍了如何针对不完美的现实环境进行系统设计,并以适应环境变化和不确定性为目标,最大限度地减少风险并提升可靠性。 本部分重点关注于“鲁棒性”的概念,在深入分析现实环 ......
笔记

算法入门

算法介绍 算法(Algorithm):⼀个计算过程,解决问题的⽅法 Niklaus Wirth: “程序=数据结构+算法” 时间复杂度 简单总结 时间复杂度是⽤来估计算法运⾏时间的⼀个式⼦(单位)。 ⼀般来说,时间复杂度⾼的算法⽐复杂度低的算法慢。 常⻅的时间复杂度(按效率排序):O(1)<O(lo ......
算法

构建之法阅读笔记03

软件架构是什么?软件架构是指对软件系统的整体结构和组织方式的定义。它包括系统的各个组成部分、它们之间的关系、以及系统的行为和性能等方面。软件架构的重要性软件架构是软件开发的基础,它决定了系统的可维护性、可扩展性、可靠性和安全性等方面。良好的软件架构能够降低系统维护的成本,提高开发效率,同时也能够为系 ......
笔记

ssh key exchange算法问题

系统ssh服务器和xshell版本不匹配 解决: 1、升级ssh 2、更换xshell ......
算法 exchange 问题 ssh key

堆与二叉搜索树学习笔记

部分内容来自 OI-WIKI。 1. 堆 堆的定义 堆是一棵二叉树,满足每个节点的键值都大于等于它的父亲节点或者小于等于它的父亲节点。每个节点的键值都大于等于它的父亲节点的叫小根堆,每个节点的键值都小于等于它的父亲节点的叫大根堆。 优先队列是一种抽象数据类型,它是一种容器,里面有一些元素,这些元素也 ......
笔记