自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(14)
  • 资源 (2)
  • 收藏
  • 关注

原创 HDU 1075——Trie树

http://acm.hdu.edu.cn/showproblem.php?pid=1075#include #include #include #include using namespace std;char a[3005],b[15];typedef struct TrieNode{ bool end; struct TrieNode *next[26]

2015-12-29 20:08:40 461

原创 HDU 1251——Trie树

http://acm.hdu.edu.cn/showproblem.php?pid=1251#include #include #include #include using namespace std;char a[15];typedef struct TrieNode{ int cnt; struct TrieNode *next[26];}Trie;

2015-12-29 19:05:09 415

原创 中级篇——字典树(Trie树)

Trie树也叫字典树,查新效率高且适用于字符串查找。相关例题HDU 1671,1251,1075,1247字典树由链表构成,以查询英文字母组成的例题为例。建立字典树时,每个节点都有26个子节点,代表其后可能出现的26个英文字母。且每个节点还需要一个bool型的参数end,当end=true时,说明该节点是一个单词的结尾字母。建立字典树需要一个根节点root,root不存储任何信息,初始化时

2015-12-28 19:55:58 571

原创 HDU 1671——Trie树应用

http://acm.hdu.edu.cn/showproblem.php?pid=1671#include #include #include #include #include #include #include using namespace std;int T,n;char num[10005][15],phone[15];bool flag;typedef st

2015-12-28 16:40:04 359

原创 POJ 2676/2918——数独DFS

广搜算法能有效求解最短路问题,深搜算法可以巧解数独类的问题,以POJ2676和2918为例POJ 2676:http://poj.org/problem?id=2676不完整的数独,0代表未填入数字,把数度补充完整分析:对于一个数x,填入数独是需要看其所在行和列是否有与其相等的值,我们需要定一两个数组row[ ][ ] 和col[ ][ ] 。row[ i ] [ j ] 表示数值 j

2015-12-27 13:39:21 388

原创 POJ2251——BFS三维迷宫

POJ2251:http://poj.org/problem?id=2251题意:输入l,r,c 三个数,代表一个 l 层的 r * c 大小的迷宫,S表示起点,E表示终点,‘ . ’表示可以走,‘#’表示走不了,求从起点到终点的最少步数,若走不出则输出“Trapped!”分析:是不是被吓住了!!!其实就是比二维的迷宫多了上下两个点而已,写入BFS算法就是了。代码:#include

2015-12-26 19:12:24 546

原创 POJ3669——BFS经典

典例POJ3669:http://poj.org/problem?id=3669题意:有n个点,每个点在一个特定的时刻 t 会被小星星砸中,其上下左右四个点也会受连累,依次输入n个点的横纵坐标及被砸的时间。现在从原点出发,问最少经过多久才能安全?若不能逃脱则输出-1分析:建立一个记录被砸时间的数组bt[ ][ ],输入数据时,先初始化所有的点为INF。再建立二维数组vis[ ][ ]监视每

2015-12-26 16:16:11 459

原创 中级篇——普通搜索之BFS

上一篇讲了DFS算法,特点是不撞南墙不回头,这一片讲讲与之相反的广度优先搜索(BFS)。形象的说,广搜是从根节点V0出发,遍历其未访问过的子节点W1,W2......接着从其子节点出发遍历W1未访问过的子节点,完事遍历W2未访问过的子节点,以此类推完成广搜遍历。因此,广搜算法在深搜算法的基础上需要多一个用于记录下一个根节点的队列que[ ],只要每访问到一个未被访问过的节点,便将节点加入队尾,

2015-12-25 16:49:02 352

原创 POJ2386——经典的DFS

http://poj.org/problem?id=2386题意:n*m的院子,‘ W ’代表有水,‘ . ’代表无水,若一个格子的八个方向存在‘ W ’则可以看做一个水塘,求一共有几个水塘分析:经典的DFS,从第一个点开始遍历,只要发现其为‘ W ’便将他变为‘ . ’,之后遍历它的八个方向,如果发现有‘ W ’存在则重复上述操作。#include #include #inclu

2015-12-25 12:47:51 322

原创 中级篇——普通搜索之DFS

深度优先搜索(DFS)和广度优先搜索(BFS)是搜索问题中比较常见的方法。此篇介绍DFS算法思想。现有n个点,m条边,每条边按照起点和终点输入。为表示点与点之间存在边,需要建立一个邻接矩阵a[ n ] [ n ],a[ i ] [ j ]=1表示 i 与 j 两点间存在边,反之为0(邻接矩阵限于小数据量)。另外还需设一个一维数组vis[ n ],vis[i]==1表示第 i 个节点已被访问过,

2015-12-24 18:53:54 403

原创 中级篇——背包问题3(多重背包)

上一篇讲的完全背包是指在所有物品件数无限多的情况下选择最值,现在引申出多重背包问题,即各物品个数均有限且不一定相同,求轙类情况下的最值。

2015-12-17 14:01:46 18329 5

原创 中级篇——背包问题2(完全背包)

01背包是指每件物品有且只有一件,而完全背包则是每件物品件数无限,求装入背包所对应的最值。完全背包也有公式,在01背包公式的基础上加以改动。完全背包公式:dp [ j ] =min/max( dp [ i ] [ j ] ,dp [ j - w [ i ] ] + v [ i ] )  。给出一道例题加以分析。典例:http://acm.hdu.edu.cn/showpro

2015-12-16 20:48:57 1016

原创 中级篇——背包问题1(01背包)

N件物品,没见有重量Wi,价值Vi;选其中几件放入容量为M的背包中,求最大价值。——经典背包问题背包问题分三类:1.01背包:每件物品仅一件,可以不将背包装满(要么取0件要么1件)                                2.完全背包:每件物品仅一件,须将背包装满。                                3.多重背包:每件物品可不止一件,可

2015-12-15 12:21:53 784

原创 中级篇——优先队列

优先队列与一般队列不同,插入新元素时不是直接将新元素插入到队尾,而是根据优先级插入到其所在优先级的相应位置。优先队列分为两种:最大优先队列和最小优先队列。故每次取出的是队列中最大优先级和最小优先级。可以根据默认的优先级排序也可自定义优先级排序。所需头文件:“queue.h”和“functional.h”。一、优先队列支持的操作q.size(); //返回队列元素个数q.empt

2015-12-11 12:24:30 289

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除