自定义博客皮肤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)
  • 收藏
  • 关注

原创 最短路算法三

prim(类似dijkstra除了更新距离 一个是到起点,一个是到集合距离就是dmin)kruskal: 稀疏图 l时间花在排序上,m<n2,mlogm和mlogn一样的,难在建图,不考原理,重点记思路(是骨头),自己复述一遍,不能死记代码 血肉。已知n个城市的坐标,他们之间普电缆,允许相交,是城市之间相互连通。最小生成树(没有环,正负权都行!堆优化:稀疏图 少用, 多用kruskal。就是给一个完全无向图,求距离总和min。c. 最大流算法:不考,竞赛题考。朴素版:稠密图, m>>n。

2024-07-01 14:34:56 220

原创 最短路算法二

99.9% 题 没有负环2024.6.20笔试题 都能SPFA一般,不是笔试题水,是笔试数据比较水!!!!,不是一锤子买卖 不担心超时TLEBF的优化!有点傻,遍历所有边更新,但是不一定要都更新啊!!!优化!只有当dist[a]变小,才更新spfa巨快很多正权图也能用SPFA过掉!!!用BFS优化,用队列(用其他也行,推荐队列) 长得很像dijkstra算法II!!!时间复杂度 O(m) <O(nm)起点进queueWhile 队列不空1. t取队头;

2024-07-01 14:32:28 357

原创 最短路算法一

2024061819:33 朴素版Dijkstra47:00 Heap优化版最短路算法——5种!!!考察重点:不会考算法证明,这里不讲了,重点是实现+抽象1. 如何建图——如何定义点 边,抽象成一个图问题Prim /i/, kruskal是最小生成树算法 不是prime/ai/质数1. 是么时候用?方法n图的node数 m边数单源:只有一个起点,求从1个点到其他所有点/第n号点的最短距离多源汇:源点= 起点 汇点= 终点 起点终点都不确定。

2024-07-01 14:28:59 890

原创 数学知识——欧拉函数

1. 一个质数p的欧拉函数(1-p里和p互质的数的个数!)就是p-1 Phi[i] = I -1。因为欧拉函数和pk的次数ak无关,只和pk 有关,出现一个pk,多乘1-1/pk。那么pj *i的质因子 是1-1/pj不影响,与pj的次数无关!推出pj是i质因子,那么 phi[i] 已经乘过 1- 1/pj。一个质数p的欧拉函数(1-p里和p互质的数的个数!If a与n互质,那么a^phi[n] mod n 恒为1。2. I mod pj =0 则pj是i的质因子,则phi( p) = p-1。

2024-07-01 14:25:11 356

原创 数学知识—约数

map:存<指数的底数pi,质数的幂ai>,然后约数个数就是(幂a1+1)(幂a2+1)(幂+1)= Π(幂+1)因为a % b= a- (a|b) *b (a模b= a - (a整除b)*b= a -c * b)1. 如果d能整除a(就是a % d =0)而且d整除b,那么d能整除a,b线性组合ax+by。2. (a,b)=(b, a % b) a和b的最大公约数= b和a模b 的最大公约数。所以证明 (a,b) = (b, a-c * b) c=a|b。b)y,此时y=1,x=c,能推出d|a。

2024-07-01 14:21:14 413

原创 数学知识——质数

质数定理:1-n有n/lnn个质数 所以粗略O(nlnn/lnn)= o(n) 其实是o(nlog2log2n) 但基本上是O(n)级别,比如2^32, log2=32, log2=5, 埃式筛法,希腊人埃拉托斯特尼发明的。比如x=12, pj =2 枚举到x/pj= 6 已经筛过了,每个数只被筛一次,不会重复,所以线性!所以枚举较小的d 那么n/d一定是,不用枚举了 到n/i!剩下所有数就是质数 p不是2- (p-1)任何一个数的倍数!优化, d|n d整除n, 那么n/d一定能整除n。

2024-07-01 14:18:42 406

原创 Linux 精通 4.2

加response打印信息, reactor.c recv_cb的epollout反注释回来。response:回应的数据组织成包;request解析对方发来的data。reactor.c里#include “server.h”网页信息展现了——网页展示的都是string!改reactor.c 的recv_cb。来的io可读recv,还可写send。​ 断开网络助手浏览器连。server.h用状态机。

2024-06-17 20:26:56 434

原创 linux精通 4.1

client网络助手里send一次,vscode的server端一次性跳出来4行,就是边沿要四次才能收到的数。**水平触发:适合包大小固定的,**多个client 连listenfd 然后server调用accept。非阻塞IO用边沿触发,因为如果阻塞io,进入while会卡住,不recv了,所以非阻塞io用边沿触发好。1串字符32byte 要四次,所以要按四次send servervscode里才收的完!不行啊 编译给的代码报错啊 给的最新的不是0430那一版就不行啊。

2024-06-17 20:25:45 1178

原创 LINUX 精通 3.2

main里怎么实现accept_cb 里的regist部分抽出来main里0再改进一下set_event的flag 标志add 还是mod102410485760​ 然后编译调试总结。

2024-06-17 10:24:28 289

原创 LINUX 精通 3.1—— 2.2.1 服务器百万并发实现(实操)

在me下面创建我的,别搞到official官方老师的版本里去了,晚上把自己代码备份到github以防虚拟机down掉了 代码死了😿。listenfd -> EPOLL_IN(当可读) ->accept_cb。clientfd -> EPOLL_OUT(当可写) ->send_cb。clientfd -> EPOLL_IN(当可读) ->recv_cb。比如EPOLL_IN 要么accept要么recv callback。register先注册。只用改sin_port。先初始化server。

2024-06-17 10:23:12 253

原创 2.1.2 事件驱动reactor的原理与实现

算法刷题:2维前缀和,一二维差分 耗时 135min习题课 4h课程补20240425 耗时:4h课程链接。

2024-05-14 22:02:17 940 2

原创 LINUX 精通 1——2.1.1 网络io与io多路复用select/poll/epoll

杂工作5-10年 够用费曼:不要直接抄,自己写;不要一个截图总之自己总结一个心得,以后回来还能更新不断实事求是骗不了自己的心吧,这个技术还是比较纯粹,让我找回了从前学习的感觉, 比科研这个乌烟瘴气的东西好多了与阿里云合作了,>60篇,有专家博主的认证即使以后工作还能交流学完了:简历面试前给老师看,可以了投问老师能拿到多少薪资,作为参考offer选择。

2024-05-12 12:21:58 733 3

原创 LINUX 入门 9

书接上回,把server做成并发量百万级的服务量装4台虚拟机 vmware右下角可以设置虚拟机内存 内核没敲,就看了一下,我的天,老师也没让敲multi_port.c的代码,直接用./tcp_server 8888 开起来server。

2024-05-07 16:22:34 393 1

原创 LINUX 入门 8

开始讲服务器端,之前是客户端DNS+https请求基础:网络编程并发服务器:多客户端一请求,一线程 veryoldIO多路复用,epoll/select上一章讲过了TCP server百万级连接借助netassist.exe。

2024-05-07 14:11:11 577 1

原创 LINUX 入门 7

先去看一遍教程 扫一遍,不用完全一行行读ctrl+shift+I调出来网页调试台——network——img过程client 浏览器建立与百度服务器的tcp连接(用DNS翻译成ip)在tcp 连接socket上发送http协议请求request(连接IP地址端口)百度server在tcp的socket连接上返回一个http协议相应response头部字段名有好多好多好多。

2024-05-07 08:51:02 969 1

原创 LINUX 入门 6

自己去看教程 快速扫了一下,还是结合实践去看概念有感觉dns作用dns分层服务类型:授权型、递归型recursiondns协议——结构,服务器去解析,解析过程,报文格式DNS互联网开发重要组件,domain name system:翻译域名domain name为IP地址windows下win+Rcmdnslookup www.baidu.com 查看网址的ip 14.215.177.38和39​ 我貌似不行,一直timeout,第二天试了以下又行了wireshark 对dns解析。

2024-05-06 20:25:01 823 1

原创 LINUX 入门 5.2

day8 20240503 耗时:240minday9 20240504 耗时:80min课程链接。

2024-05-04 17:22:34 507

原创 LINUX 入门 5.1

课程链接。

2024-05-03 11:48:10 852

原创 LINUX 入门 4

线程池sdk组件封装software Development Kit任务队列:任务组成,先定义任务task struct再任务队列:链表串起tasks 双向链表//1.定义task//一个函数指针,指向一个接受 struct nTask* 参数并且没有返回值的函数。这个指针用于表示任务的执行函数。//一个指向 void 类型的指针,用于存储任务函数可能需要的额外数据或参数。// 双向链表。

2024-05-02 10:45:37 769 2

原创 LINUX 入门 3

概念引入临界资源:例子:买火车票,多个窗口共用一块资源,这里就是create函数里的count(都可以查座位号)并发concurrency多线程code10个火车票窗口——10个thread线程定义thread标识符id——create thread——thread 的callback函数编译在编译时使用-lpthread标志是为了告诉编译器链接 pthread 库。这样做是因为你的程序中使用了 pthread 库提供的函数,比如。

2024-04-29 16:25:17 442

原创 LINUX 入门 2.3

读行+解析内容:fgets(buffer, 长度,fp) 读一行,然后分装parser。

2024-04-28 20:12:20 479

原创 LINUX 入门 2.2

day5 20240428 耗时:60min课程链接。

2024-04-28 16:19:44 541

原创 LINUX 入门 2.1

day4 20240425 耗时:60minday5 20240428 耗时:120min课程链接。

2024-04-28 10:33:01 731

原创 LINUX 入门 1

课程链接耗时:2hp.s. SourceInsight使用 自行搜索。

2024-04-25 14:28:57 989 2

原创 LINUX 入门 0.3

stdin重定向到infile,从infile读入输入,stdout重定向到Outfile输出写入到outfile。末尾的EOF后面带有空格,EOF前后都不应有空格或其他符号。获取命令行的每个参数 $n n代表第几个参数, so 语句后面可以加或者不加;-ge -gt -lt -le -eq -ne 只能比数字,比不了string。多行 :

2024-04-24 10:19:17 689

原创 LINUX 入门 0.2

课程链接0422 耗时:150min +下午160min+晚上shell。

2024-04-22 15:43:02 226 2

原创 LINUX 入门 0.1

课程链接。

2024-04-22 11:59:58 737 1

空空如也

空空如也

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

TA关注的人

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