搜索
文章平均质量分 56
DrCarl
重庆大学acm-icpc集训队队员
展开
-
UVA 1599 Ideal Path 【两次BFS+贪心】 (好题)
题目链接题意迷宫中有n个房间,m条路,每条路上都涂上了颜色(用整数表示),求按走的路径的颜色排列的字典序最小的最短路分析贪心方法求最短路当然简单,每条路的长度都是1,BFS、SPFA、Dijkstra随便上都行。关键是求字典序最小的路径。根据字典序的特征贪心,从1到n,优先取所有可取最短路中颜色值最小的那条路。 但关键在于如何判断某条路是不是最短路上的路径,想到最短路问题通常打印路径的方法:原创 2016-07-24 22:20:11 · 609 阅读 · 0 评论 -
UVA 11624 Fire! 【特殊BFS】
题目链接题意人被困在迷宫里,有一些火苗在迷宫中会随时间蔓延,问人能否安全走到迷宫边界分析题本身很简单,只是这种题有两种处理方法: 火的状态很简单,只需要知道某个时间某个点有没有火,所以单独BFS一张火的图就可以了 一种比较巧妙的方法是,把火与人都当做BFS中的元素在一个队列中处理,注意BFS中同一层要先处理火,也就是最开始要先把火给入队 AC代码(当时写的比较仓促,代码很丑……)//UVA 1162原创 2016-07-24 22:36:41 · 375 阅读 · 0 评论 -
UVA 11212 Editing a Book 【IDA*】
题目链接题意给一个n个数的全排列,可以进行将任意连续的一段截下来插入到任意位置的操作,问至少需要多少步这样的操作能够是序列变成递增的序列。分析题中n的最大值为9,状态数为9的阶乘,不过1e6左右,看似可以直接BFS。但是每一种状态后的决策数量太多了(任意位置的任意长度再插入到任意位置) 考虑到n个数的全排列,要使之恢复递增的顺序,最多移动n-1次即可。这样层数有上限,尝试用DFS。然而直接DFS回原创 2016-07-25 21:49:54 · 660 阅读 · 0 评论 -
Codevs 1288 埃及分数 【IDA*】
题目链接题意非常出名而基础的一道题,也是lrj紫书上讲解IDA*的例题。 今天发现了Codevs这个OJ的存在,给人耳目一新的感觉,然后就A了这个题。然而居然做的第一题的测试数据就有问题(有争议)……分析首先看这个搜索的决策,既无法确定搜索深度的下界(可以有无限个分数相加),也无法确定宽度的下界(分数可以无限小),因此考虑使用IDA* 题中最优解首先是长度最短,这就给了IDA*用武之处,不断地求原创 2016-07-25 22:13:34 · 370 阅读 · 0 评论 -
UVA 10603 Fill【BFS】
题意有三个给定容量的没有刻度的杯子,其中一个杯子装满水,问量出给定水的体积需要倒多少水(倒水时水量的和)分析直接BFS,但非常容易写错AC代码//UVA 10603 Fill //AC 2016-07-19 16:11:16 //BFS #include <iostream> #include <cstdio> #include <algorithm> #include <cmath> #inclu原创 2016-07-26 19:32:48 · 359 阅读 · 0 评论 -
UVA 1601 POJ 3523 The Morning after Halloween 【双向BFS】【A*】 (好题)
题目链接题意问移动图上三个Ghost同时到达目标点的最短步数。三个Ghost可以同时移动,但不能重叠,不能交换位置。双向BFS做法因为状态比较多,直接BFS会T,因此用双向BFS来优化。然而直接上双向BFS还是会T,在BFS过程中枚举可以走的循环太多了,因此对图进行预处理,取出所有可以走的点进行BFS。16*16不是太多,所以没有必要hash,直接开个六维数组还方便些。其他就是一些双向BFS常规注意原创 2016-07-29 23:26:16 · 447 阅读 · 0 评论 -
Aizu 0513 Paint Color【离散化+BFS】
题目链接 (日语题……(:зゝ∠))题意在直角坐标系的第一象限中有一块m*h的板子,在上面贴上了一些矩形的胶带,现在告诉每个胶带的左下坐标和右上坐标,求板子上有多少个不连通的空白区域(没有贴胶带)分析坐标范围太大,1e6左右,直接按坐标来BFS显然不可能。但考虑到胶带数量只要1e3,可以根据胶带的位置对坐标离散化处理。离散化方法x和y分开处理(因为互不影响)。把所有的x1,x2以及它们相邻的坐标(即原创 2016-08-02 17:09:48 · 407 阅读 · 0 评论