
搜索
文章平均质量分 64
HyperDai
Hyper Hyper Hyper Dai~~
展开
-
Zipper - DFS搜索+剪枝
Problem Description Given three strings, you are to determine whether the third string can be formed by combining the characters in the first two strings. The first two strings can be mixed arbitraril原创 2017-06-04 18:41:46 · 328 阅读 · 0 评论 -
字典树(Tire树)模板 & 例题
问题描述小Hi和小Ho是一对好朋友,出生在信息化社会的他们对编程产生了莫大的兴趣,他们约定好互相帮助,在编程的学习道路上一同前进。这一天,他们遇到了一本词典,于是小Hi就向小Ho提出了那个经典的问题:“小Ho,你能不能对于每一个我给出的字符串,都在这个词典里面找到以这个字符串开头的所有单词呢?”身经百战的小Ho答道:“怎么会不能呢!你每给我一个字符串,我就依次遍历词典里的所有单词,检查你给我的字符串原创 2017-10-15 20:44:13 · 545 阅读 · 0 评论 -
经典记忆化搜索
问题We all love recursion! Don’t we? Consider a three-parameter recursive function w(a, b, c): if a <= 0 or b <= 0 or c <= 0, then w(a, b, c) returns: 1 if a > 20 or b > 20 or c > 20, then w(a, b,原创 2017-10-05 20:16:20 · 373 阅读 · 0 评论 -
hdu - beautiful number-5179 - 暴力打表&DFS&数位DP
问题Let A=∑ni=1ai∗10n−i(1≤ai≤9)A=∑i=1nai∗10n−i(1≤ai≤9)(nn is the number of AA’s digits). We call AA as “beautiful number” if and only if a[i]≥a[i+1]a[i]≥a[i+1] when 1≤i题解暴力打表 O(n)我们跑[1,1e9] 的所有满足这个条件的数。#原创 2017-10-02 18:29:43 · 301 阅读 · 0 评论 -
模拟退火算法
模拟退火算法是用来求解最优化问题的算法。比如著名的TSP问题,函数最大值最小值问题等等。接下来将以如下几个方面来详细介绍模拟退火算法。转载 2017-09-23 17:27:51 · 409 阅读 · 0 评论 -
搜索总结 - DFS&BFS&DBFS框架
注:此博文是在老师上课之后总结的,属于课堂笔记,大部分摘自老师提供的课件。引言根据“信息学初学者之家”网站的统计,Ural(俄罗斯的Ural州立大学的简称 ,有名的Ural Online Problem Set 就是该校的系统)的题目类型大概呈如下的分布: 搜索 动态规划 贪心 构造 图论 约10% 约15% 约5% 约5% 约10% 计算几何 纯数学题 数据结构 其它 约5% 约2原创 2017-06-04 01:40:26 · 1231 阅读 · 0 评论 -
hnust - 神奇密码锁 - BFS
题目描述小明忘记了旅行箱上的密码,现在他想自己暴力弄出密码来,但他又想知道最从一个数字到另一个数字最少需要多少步,现在请你帮忙。 另外,小明的密码箱很奇怪,只有四位数,上面的数字只有1到9,每次只能让每位数加1或者减1。按常识我们可以知道从1到9只需要减1,从9到1只需要加1。此外,你还能交换相邻的两个数字。如1234可以在一步后变成2134,但不能变成4231。输入第一行有一个整数:T,代表有多原创 2017-07-17 17:42:33 · 1809 阅读 · 0 评论 -
hnust - Help Dexter - DFS
题目描述You know Dexter, right? He is a very talented young scientist. He has a huge lab hidden inside his building. He made all possible security arrangement to keep his naughty sister Dee Dee away from h原创 2017-07-21 15:45:35 · 393 阅读 · 0 评论 -
八数码问题 - BFS
题目描述八数码问题,即在一个3×3的矩阵中有8个数(1至8)和一个空格,现在要你从一个状态转换到另一个状态,每次只能移动与空格相邻的一个数字到空格当中,问题是要你求从初始状态移动到目标状态所需的最少步数。如下图所示。 如上图所示的数据以矩阵形式给出。现在给出分别代表初始状态和目标状态的两个3*3的矩阵,请给出两个矩阵相互转化的最少步数。输入第1行-第3行:3个用空格分隔的整数,代表初始状态相应原创 2017-07-18 10:15:32 · 1160 阅读 · 0 评论 -
*hdu - Knight Moves(跳马) - BFS/DBFS
Problem DescriptionA friend of you is doing research on the Traveling Knight Problem (TKP) where you are to find the shortest closed tour of knight moves that visits each square of a given set of n squ原创 2017-07-15 17:20:46 · 523 阅读 · 0 评论 -
*N皇后问题 - 回溯/深搜
看题前先巩固知识: 深搜即深度优先搜索 回溯法试探法:Problem Description 在N*N的方格棋盘放置了N个皇后,使得它们不相互攻击(即任意2个皇后不允许处在同一排,同一列,也不允许处在与棋盘边框成45角的斜线上。你的任务是,对于给定的N,求出有多少种合法的放置方法。**Input**共有若干行,每行一个正整数N≤10,表示棋盘和皇后的数量;如果N=0,表示结束。原创 2017-06-04 01:19:45 · 566 阅读 · 0 评论 -
hnust - BFS_连连看游戏 - BFS
题目描述大家都玩过连连看吧!今天我们玩一个类似的游戏。在一个由10*10个小方格组成的矩形里有n(n<=10)对字符(它们是大写字符中的前n个)。矩形里有些位置是可以从上面走过,有些则不能。能走过的位置用’.’标识,不能的用’#’标识。如果2个相同字符是连通的(从一个字符能走到另一个字符,注意走的时候只能向上、下、左、右走。某个位置是有其他字符时,这个位置是不能走的),那么这对字符能够进行配对。如果原创 2017-07-20 13:20:59 · 431 阅读 · 0 评论 -
hdu - 逃离迷宫 - BFS
Problem Description 给定一个m × n (m行, n列)的迷宫,迷宫中有两个位置,gloria想从迷宫的一个位置走到另外一个位置,当然迷宫中有些地方是空地,gloria可以穿越,有些地方是障碍,她必须绕行,从迷宫的一个位置,只能走到与它相邻的4个位置中,当然在行走过程中,gloria不能走到迷宫外面去。令人头痛的是,gloria是个没什么方向感的人,因此,她在行走过程中,不能转原创 2017-07-20 18:40:27 · 450 阅读 · 0 评论 -
图的遍历 - 邻接矩阵 - 深搜与广搜
深搜与广搜图论的遍历基础。而且今天讨论的是最简单的邻接矩阵。 下图是邻接矩阵的大致概念。 在C语言中邻接矩阵的定义方式如下://-----图的邻接矩阵存储表示-----#define MaxInt 32767//表示极大值#define MVNum 100//最大顶点数typedef char VerTexType;//假设顶点的数据类型为字符型typedef int ArcType原创 2017-05-30 16:22:40 · 2275 阅读 · 1 评论 -
hnust - 水果消除 - 回溯法/深搜
“水果消除”是一款手机游戏,相信大家都玩过或玩过类似的游戏。 下面是“水果消除”游戏的一种初始状态。 消除的基本规则:如果有2个或2个以上的相同水果连在一起,则可以点选并消除。 请问在某一种状态下,有几种可以点选并消除的选择方案。 例如,对于上图所示的初始状态,将有6种点选并消除的选择方案。这6种方案依次如下图所示。 输入 先输入一个整数n,表示放水果的格子总数为n*n。n取原创 2017-05-30 16:14:58 · 721 阅读 · 0 评论 -
不同情况的二分查找详解
引言二分搜索法,是通过不断缩小解可能存在的范围,从而求得问题最优解的方法。在ACM竞赛中,解题通常要与其他算法,如贪心相结合提高程序效率。 二分对于中位数有两种取法:上位中位数mid=lenth/2下位中位数mid=(lenth+1)/2-1 或 mid=(lenth-2)/2下文将详细分析。STL中的预定函数1. lower_boundlower_bou...原创 2017-08-20 14:09:39 · 425 阅读 · 0 评论