概述:本文主要讲述一些搜索算法的使用,以及其中奥妙思想的思考。 一:广度搜索与深度搜索---BFS与DFS 1:实现算法导论中的BSF #include #define MAX 1000000struct Node{ int d; int p; int color; int id;};int _tm...
分类:
其他好文 时间:
2014-07-16 23:08:16
阅读次数:
224
二叉堆简介平时所说的堆,若没加任何修饰,一般就是指二叉堆。同二叉树一样,堆也有两个性质,即结构性和堆序性。正如AVL树一样,对堆的以此操作可能破坏者两个性质中的一个,因此,堆的操作必须要到堆的所有性质都被满足时才能终止。结构性质堆是一棵完全填满的二叉树,因为完全二叉树很有规律,所以它可以用一个数组表...
分类:
其他好文 时间:
2014-07-10 11:53:48
阅读次数:
1258
STL Iterator的里里外外(一)?1. Iterator是什么? Iterator是指针的概括物(泛型指针),是可以通过一组通用的接口类似于普通指针那样遍历区间中的所有元素的对象。Iterator是完全抽象的概念:任何行为类似于Iterator的东西就是一个Iterator(例如:指针是数....
分类:
其他好文 时间:
2014-07-07 18:22:39
阅读次数:
179
今天在编译PDF时发现使用了一下STL中的z数值极限竟然编译不过,return GetRangeConstraint(value ::max(), true);出现如下错误:warning C4003: “max”宏的实参不足error C2589: “(” : “::”右边...
分类:
其他好文 时间:
2014-07-07 18:03:56
阅读次数:
190
1. 栈(stack)这种数据结构在计算机中是相当出名的。栈中的数据是先进后出的(First In Last Out, FILO)。栈只有一个出口,允许新增元素(只能在栈顶上增加)、移出元素(只能移出栈顶元素)、取得栈顶元素等操作。在STL中,栈是以别的容器作为底部结构,再将接口改变,使之符合栈的....
分类:
其他好文 时间:
2014-06-30 13:53:53
阅读次数:
185
①push_heap算法
下面是push_heap算法的实现细节。该函数接收两个迭代器,用来表现一个heap底部容器(vector)的头尾,并且新元素已经插入到底部的最尾端。
template
inline void push_heap(RandomAccessIterator first,RandomAccessIterator last)
{
//注意,此函数被调用时,新...
分类:
其他好文 时间:
2014-06-30 09:25:57
阅读次数:
239
单广,双广都用了,感觉双向BFS,太棒了,HDU的这个题双向BFS时间优化的太棒了
有图,有真相!...
分类:
其他好文 时间:
2014-06-30 06:32:37
阅读次数:
171
《STL源码剖析》中,指出SGI STL的list底层数据结构式循环双向链表,并且在链表尾端留一个空白节点,让end指向它。由于是双向的,那么list的迭代器必须是Bidirectional Iterator类别的。
下面,分别验证vs2010下和code blocks(gcc)下,list的底层实现是否是循环链表。
#include
#include
using namesp...
分类:
其他好文 时间:
2014-06-30 00:21:54
阅读次数:
202
题目链接:点击打开链接
stl+容斥
#include
#include
#include
#include
#include
#include
using namespace std;
#define N 65540
#define ll __int64
ll n;
ll a[N][4], mul[4]={1,16,256,4096};
ll h[N];
vectorG[N];
...
分类:
其他好文 时间:
2014-06-29 20:46:31
阅读次数:
193
现代 C++ 强调:基于堆栈的范围,而非堆或静态全局范围。自动类型推理,而非显式类型名称。智能指针而不是原始指针。std::string和std::wstring类型(请参见),而非原始char[]数组。标准模板库(STL) 容器(例如vector、list和map),而非原始数组或自定义容器。请参...
分类:
编程语言 时间:
2014-06-29 18:46:28
阅读次数:
255