摘要: 单源最短路径(即从某个节点出发到其他节点的距离) dijkstra: 以上图为例,假设要求从1到其他节点的最短距离,首先用dis数组存储节点到1节点的最短距离。 dis[ i ]表示从 i 节点到 1 的距离,上图中dis[1]=0 ,dis[2]=inf(足够大的数)dis[ 3 ]=8 dis 阅读全文
posted @ 2021-01-14 22:51 丶蛋花拉面 阅读(121) 评论(0) 推荐(0)
摘要: 给定一个无向图,要去掉一些边使得边上权值加和最小,同时任意两个顶点互相连通。 显然最后把边去掉后只会剩下一个树。 Prim算法: vis数组用于记录是否已访问该顶点。 比如从1顶点出发,那么dis数组存的即为1到其他顶点的距离,也就是dis[1]=0,dis[3]=8,dis[4]=37 此时无法到 阅读全文
posted @ 2020-12-14 19:46 丶蛋花拉面 阅读(63) 评论(0) 推荐(0)
摘要: 广播和多播编程都是建立在UDP通信的基础上,通过setsockopt函数即可发送广播数据报或多播数据报。 int setsockopt(int fd,int level,int optname,const char*optval,int optlen) 参数:1、套接字描述符 2、选项定义层次,可为 阅读全文
posted @ 2020-12-10 09:13 丶蛋花拉面 阅读(341) 评论(0) 推荐(0)
摘要: UDP通信中的客户端不必与服务器端建立连接,而是直接使用发送函数给服务器发送数据,调用发送函数时要指明目的地址。 事实上,对于UDP来说,并没有严格的服务器和客户端之分 UDP 服务流程 1、UDP服务器通过socket()函数创建套接字,获得套接字描述符 2、UDP服务器调用bind()函数绑定I 阅读全文
posted @ 2020-12-09 12:05 丶蛋花拉面 阅读(119) 评论(0) 推荐(0)
摘要: 从给定序列中按原来的顺序取出若干元素组成的序列称为子序列,当取出全部元素时,子序列等于原序列 最长公共子序列: 给定两个序列,求序列最长的公共子序列, 如a=[1,2,3,4,5,6] b=[4,5,6,1,2,4]对于a b来说,最长公共子序列长度为3,有两个解[4,5,6][1,2,4] 可以设 阅读全文
posted @ 2020-12-04 20:35 丶蛋花拉面 阅读(181) 评论(0) 推荐(0)
摘要: 在学习主要代码之前先了解下TCP通信两端使用socket函数建立连接的流程: 1、客户端和服务器均使用socket函数各自创建一个套接字 2、服务器用bind绑定IP地址和端口号 3、服务器用listen开启监听模式 3、服务器用accept阻塞自己,等待客户端的连接请求 4、客户端通过connec 阅读全文
posted @ 2020-11-29 22:16 丶蛋花拉面 阅读(403) 评论(0) 推荐(0)
摘要: 对于匹配字符串m和目标字符串n,最朴素的思想就是对于每个起始位置都o(m)地直接比较字符是否相同,最后时间复杂度为O(m*n)这样的时间复杂度在大多数时候都很不乐观,因此需要一些技巧降低时间复杂度。 哈希算法: 我们可以将一段字符串映射为数值然后比较数值大小,若相等则匹配成功。这是理想情况下的,要达 阅读全文
posted @ 2020-11-27 21:54 丶蛋花拉面 阅读(379) 评论(0) 推荐(0)
摘要: 高精度加法:P1601 A+B Problem(高精) 1 #include<stdio.h> 2 #include<string.h> 3 int a[510], b[510], k; 4 int cmd() 5 { 6 if (a[0] == b[0])return 0; 7 else if ( 阅读全文
posted @ 2020-11-26 22:54 丶蛋花拉面 阅读(114) 评论(0) 推荐(0)
摘要: 洛谷P1219 在大一的时候做了在洛谷做了八皇后,题目大概意思是给定一个n*n的棋盘,在棋盘上放皇后,皇后可以上下左右斜着移动,要让皇后之间不能互相攻击。n的取值是[6,13] 很容易想到要用DFS,从第一行开始,定下该行皇后的可放置位后移动下一行,直到每一行都有一个皇后,若是在某行无法放置皇后则返 阅读全文
posted @ 2020-11-25 14:57 丶蛋花拉面 阅读(135) 评论(0) 推荐(0)