ACM
文章平均质量分 63
PathToGod_CODER
只会写HelLoworld的弱渣
展开
-
借鉴dijstra写的prim算法
在挑战程序设计竞赛那本书上看prim代码,总感觉别扭,而我又不喜欢那种代码方式,比较喜欢dijstra采用优先队列的顺序,所以就自己写了一个用优先队列的prim算法,用于日后使用。贴代码:#include #include #include #include #include #include #include using namespace std;i原创 2015-11-20 21:07:46 · 477 阅读 · 0 评论 -
Floyd、Dijkstra、Bellman-Ford、SPFA的比较
原创:http://www.cnblogs.com/hibernate6/archive/2011/02/12/2522331.html几个最短路径算法的比较:Floyd 求多源、无负权边的最短路。用矩阵记录图。时效性较差,时间复杂度O(V^3)。 Floyd-Warshall算法(Floyd-Warshall algorithm)是解决任意两点间转载 2015-11-25 23:21:18 · 382 阅读 · 0 评论 -
优先队列priority_queue用法详解
优先队列是队列的一种,不过它可以按照自定义的一种方式(数据的优先级)来对队列中的数据进行动态的排序每次的push和pop操作,队列都会动态的调整,以达到我们预期的方式来存储。例如:我们常用的操作就是对数据排序,优先队列默认的是数据大的优先级高所以我们无论按照什么顺序push一堆数,最终在队列里总是top出最大的元素。用法:示例:将元素5,3,2,4,6依次push到优先队列中,转载 2015-11-21 10:57:34 · 544 阅读 · 0 评论 -
划分数
看了挑战程序设计竞赛的DP部分中的划分数问题,刚开始真是云里雾里,有些字母的写法太过于高端,以至于不能理解,经过了半小时之多的认真思考与研究,终于给搞明白了。原题大概是这样的: 有N个无区别的物品,将他们划分成不超过M组,求出划分方法数模Mod的余数1≤M≤N≤10002≤Mod≤10000 sample input: N = 4,M=3, Mod = 10000; sam原创 2015-11-17 15:12:32 · 636 阅读 · 0 评论 -
浅谈为什么最短路径中的路径还原只能用prev前驱节点来记录
在做题过程中,想过,既然前驱节点可以记录路径,那么后继能不能呢。那么对于我这种逻辑感不强烈的人,只能动手做了。在用后继的方式后,将每个点的后继一一的输出后发现了问题,是这样的,因为在图中,可能一个点所连接的两条边都可能符合条件,比如 1->2, 1->3,2->3这样简单的一个图,如果1->2,1->3的路径都是最短的,那么在更新过程中,1的后继先是2,后来又会原创 2015-11-21 11:34:08 · 570 阅读 · 0 评论 -
图中 构建边的方式总结(待补充)
建立边的方式不同,其所解决的问题也不同,1. 第一种建边方式为邻接矩阵,最简单的一种,这里就不说明了。2. 邻接表。该建边方式比较重要,其用法是通过一个装有MAX个vector容器的数组来实现的,比如:vector V[MAX];则V的下标即表示第几个点,比如第一个点,为V[1](也可以是V[0],这个根据自己写代码习惯决定),该容器中push_back进去原创 2015-11-17 23:24:46 · 664 阅读 · 0 评论 -
并查集
本文章仅供作者复习代码,不提供教程(要说教程,小的真的不会啊),所以有小伙伴勿入请火速离开,以免寻砖砍死作者造成不必要的麻烦。并查集的实现:int par[MAX_N]; //父亲int height[MAX_N];//树的高度//初始化n个元素void init(int n){ for(int i=0; i<n; i++){ par[i原创 2015-11-17 20:50:09 · 253 阅读 · 0 评论 -
红黑树
转自:http://blog.csdn.net/eric491179912/article/details/6179908介绍另一种平衡二叉树:红黑树(Red Black Tree),红黑树由Rudolf Bayer于1972年发明,当时被称为平衡二叉B树(symmetric binary B-trees),1978年被Leonidas J. Guibas 和Robert Sedgew转载 2015-11-17 15:58:47 · 289 阅读 · 0 评论 -
priority_queue 优先队列使用方法
priority_queue调用 STL里面的 make_heap(), pop_heap(), push_heap() 算法实现,也算是堆的另外一种形式。先写一个用 STL 里面堆算法实现的与真正的STL里面的 priority_queue用法相似的priority_queue, 以加深对 priority_queue 的理解#include iostream>#in转载 2015-11-17 15:51:45 · 434 阅读 · 0 评论 -
AVL树
AVL(Adelson-Velskii and Landis)树是带有平衡条件(balance condition)的二叉查找树。这个平衡条件必须容易保持,而且必须保证树的深度是O(logN)。AVL树规定其每个结点的左子树和右子树的高度最多差1。如下图,左边的树是AVL树,右边的则不是。AVL树的每个结点(在其结点结构中)保留高度信息。可以证明,一般情况下,一棵AVL树的高度最多为1.4转载 2015-11-17 18:53:53 · 1159 阅读 · 0 评论 -
c++ list, vector, map, set 区别与用法比较
List封装了链表,Vector封装了数组, list和vector得最主要的区别在于vector使用连续内存存储的,他支持[]运算符,而list是以链表形式实现的,不支持[]。Vector对于随机访问的速度很快,但是对于插入尤其是在头部插入元素速度很慢,在尾部插入速度很快。List对于随机访问速度慢得多,因为可能要遍历整个链表才能做到,但是对于插入就快的多了,不需要拷贝和移动数据,只需要转载 2015-11-17 15:48:38 · 411 阅读 · 0 评论 -
多重集组合数
问题描述: 有n种物品,第i种物品有ai个。从这些物品中取m个,有多少种取法,求出方案数 模上M的余数。Sample input:n = 3;m=3;a = {1,2,3};M = 10000;Sample output:6 (0+0+3,0+1+2,0+2+1,1+0+2,1+1+1,1+2+0)该题采用动态规划。 其中有一个思想让我感触很深:dp[i+1][j] := 前i种物品中取出原创 2015-11-17 15:35:46 · 494 阅读 · 0 评论 -
HDU分类
Hdu题目分类1001 这个就不用说了吧1002 简单的大数1003 DP经典问题,最大连续子段和1004 简单题1005 找规律(循环点)1006 感觉有点BT的题,我到现在还没过1007 经典问题,最近点对问题,用分治1008 简单题1009 贪心1010转载 2015-11-16 19:12:12 · 652 阅读 · 0 评论 -
为以后做准备[ACM比赛技巧]
1. 比赛中评测会有些慢,偶尔还会碰到隔10分钟以上才返回结果的情况,这段时间不能等结果,必须开工其他题,如果WA,两道题同时做。交完每道题都要先打印。 2. 比赛时发的饭不是让你当时就吃的,那是给你赛后吃的。基本上比赛中前几名的队都没人吃,除非领先很多。 3. 很多选手,尤其是第一次参加比赛的,到一个新环境,全当旅游了,参观的参观,找同学的找同学,玩玩乐乐就把正事抛到脑后了,结果比赛转载 2015-11-26 09:39:14 · 2358 阅读 · 0 评论