摘要: 将博客搬家至CSDN了 阅读全文
posted @ 2020-10-22 17:41 chen_peng 阅读(90) 评论(0) 推荐(0)
摘要: SPFA算法是对Bellman-ford算法的优化, 优化的思想:Bellman-ford算法是遍历所有边,对边进行松弛操作,但是如果前一个边的距离没有变化,那么后一个边的距离也不会变化。通过这个特性,我们可以将变化距离的点存在队列中,只对这些点的后继点进行松弛操作。 SPFA算法的时间复杂度为O( 阅读全文
posted @ 2020-10-22 16:48 chen_peng 阅读(203) 评论(0) 推荐(0)
摘要: 给定一个n个点m条边的有向图,图中可能存在重边和自环, 边权可能为负数。 请你求出从1号点到n号点的最多经过k条边的最短距离,如果无法从1号点走到n号点,输出impossible。 注意:图中可能 存在负权回路 。 输入格式 第一行包含三个整数n,m,k。 接下来m行,每行包含三个整数x,y,z,表 阅读全文
posted @ 2020-10-21 15:50 chen_peng 阅读(134) 评论(0) 推荐(0)
摘要: 阅读全文
posted @ 2020-09-15 20:36 chen_peng 阅读(60) 评论(0) 推荐(0)
摘要: Dijkstra求最短路的基本思路是贪心算法,求解单源最短路。 适用于求解正权边。 算法的基本原理可以自行查看。 这里讲解两种求最短路的方法: (1)、朴素算法 朴素算法的时间复杂度为O(n2),适用于稠密图,用邻接表来存图,并且可以处理自环和重边。 Dijkstra求最短路 I 给定一个n个点m条 阅读全文
posted @ 2020-09-15 19:20 chen_peng 阅读(249) 评论(0) 推荐(0)
摘要: 用getline()读入string或者char[ ] 不需要处理最后的换行符 \n string str; getline(cin,str);//读入string char str2[1024]; cin.getline(str2,1024);//读入char数组 阅读全文
posted @ 2020-09-14 20:47 chen_peng 阅读(387) 评论(0) 推荐(0)
摘要: A.Ahahahahahahahaha 题意,给定一个由0,1组成的数组a,数组长度为n(n%2==0),要求经过k(k/2)次移除后,使得a1−a2+a3−a4+…=0。 分析:可以记录下数组中1的个数,在进行判断 开始看题的时候我认为移除后的数组长度只能是偶数,就导致了我在(n%4==0)这一情 阅读全文
posted @ 2020-09-09 09:33 chen_peng 阅读(191) 评论(0) 推荐(0)
摘要: 树的重心定义: 树的重心也叫树的质心。找到一个点,其所有的子树中最大的子树节点数最少,那么这个点就是这棵树的重心,删去重心后,生成的多棵树尽可能平衡。 通俗点讲,就是在树中去掉一个点,删除这个点后,最大连通块(一定是树)的结点数最小。 数的重心一些特性: 树中所有点到某个点的距离和中,到重心的距离和 阅读全文
posted @ 2020-09-06 17:39 chen_peng 阅读(223) 评论(1) 推荐(0)
摘要: A.Yet Another Two Integers Problem 分析:签到题,计算差值,/ 10向上取整 代码: #include<cstdio> #include<iostream> #include<cstring> #include<algorithm> #include<cmath> 阅读全文
posted @ 2020-09-05 17:52 chen_peng 阅读(279) 评论(0) 推荐(0)
摘要: 1.hash拉链法 模拟散列表 将取余后的数存在数组中,每个数组伸出一条链表来存实际值。 这个取余的数为质数时,效果比较好,可以提前求出质数。 代码 #include<cstring> #include<cstdio> #include<algorithm> #include<iostream> # 阅读全文
posted @ 2020-09-03 16:42 chen_peng 阅读(156) 评论(0) 推荐(0)