这道题一开始想的是用Dijkstra或者是SPFA算法来写,写好了以后提交,结果TLE了。当时写的时候就感觉每个节点更新的复杂度至少是 O(n) 级别的,再考虑到数据量有 N<=100000,0<=Xi,…
分类:未分类
Bellman-ford存在负权的单元点最短路径
一、算法介绍: 为了能够求解边上带有负值的单源最短路径问题,Bellman(贝尔曼)和Ford(福特)提出了从源点逐次绕过其他顶点,以缩短到达终点的最短路径长度的方法…
学习笔记(一)插入排序
每个程序员都了解算法的重要性,不去看书,对于算法的概念永远都是似懂非懂,而不动手实践则永远不会有深刻的认识。新手上路,求各路神仙指点……. 今天从最简单的算法做起,插入排序,刚开始写的方法如下: …
归并排序
static void Merging_Sort(int[] a) //归并排序算法 { &nb…
合并排序 js版本
mergesort是合并排序。基本思路是将数列拆分为有序的子序列,再将子序列合并,完成排序。 // 合并排序函数 function mergesort(unsorted){ if(unsorted.length <…
27.跳台阶问题
题目:一个台阶总共有n 级,如果一次可以跳1 级,也可以跳2 级。 求总共有多少总跳法,并分析算法的时间复杂度。 这道题最近经常出现,包括MicroStrategy 等比较重视算法的公司 都曾先后选用过个这道题作为面试题…
算法中的小技巧
求一个数的幂次方,除了递归,还有更高效方法即快速幂方法 #include<iostream> #include<string.h> #include<algorithm> #inclu…
Huffuman Coding(哈夫曼编码)
哈夫曼编码: 假设要给一偏文章进行编码,文章由英文组成,对于全文来说,我们可以统计得到这篇文章各个字母出现的个数,个数大的字母意味着它在文章中出现的频率更高,对所有的字母都用相同的空间大小编码的话会产生一定的空间浪费。哈…
除法(Division UVa 725)
除法(Division UVa 725) 输入正整数n,按从小到大的顺序输出所有行如 abcde / fghij = n 的表达式,其中 a~j恰好为数字0~9的一个排序(可以有前导0),2 <= n <= …
冒泡排序
冒泡排序是非常容易理解和实现,以从小到大排序举例: 设数组长度为N。 1.比较相邻的前后二个数据,如果前面数据大于后面的数据,就将二个数据交换。 2.这样对数组的第0个数据到N-1个数据进行一次遍历后,最大的一个数据就“…
时间转换
#include<iostream> #include<cmath> using namespace std; int main() { int startime, changerti…
Nginx服务优化(二)修改程序运行用户和组
修改Nginx用户与组 Nginx运行时进程需要有用户与组的支持,以实现对网站文件读取时进行访问控制 Nginx默认使用nobody用户账号与组账号,一般也要进行修改 修改的方法 编译安装时指定用户与组 修改配置文件指定…