搜索
文章平均质量分 62
_Mocha_
私はこの世界を深く愛している
展开
-
[BZOJ1082][SCOI2005]栅栏
[BZOJ1082][SCOI2005]栅栏原创 2016-09-01 14:00:56 · 665 阅读 · 0 评论 -
广搜与广搜变形
广搜【例题】Bloxorz(poj3322) 用一个三元组(x,y,lie)记录状态(x,y)为方块躺着的时候左或上的坐标以及立着的底坐标,躺着立着分情况处理滚动方向,注意判断边界即可。#include<cstdio>#include<iostream>#include<cstring>#include&a原创 2018-08-06 20:50:03 · 283 阅读 · 0 评论 -
搜索练习
1、靶形数独(传送门)就是poj3074的数独加上一个判断就好了,注意位运算的细节。#include<cstdio>#include<iostream>#include<cstring&am原创 2018-08-09 16:44:38 · 360 阅读 · 0 评论 -
剪枝
【例题】Sudoku1(poj2676) 题意就是一个数独游戏。 爆搜,无剪枝可过。#include<cstdio>#include<iostream>#include<cstring>#include<algorithm>using namespace std;int a[10][10];bool c原创 2018-07-14 11:38:30 · 430 阅读 · 0 评论 -
搜索基础
为了方便复习整理(凑博客数),决定把之前那篇《算法竞赛进阶指南0x20搜索》分开小节记录博客。这一节记录一些搜索的入门基础题目。0x21 树和图的遍历: 先放一点基本的代码void ins(int x,int y){ len++; a[len].x=x;a[len].y=y; a[len].next=last[x];last[x]=len; }//图的遍...原创 2018-07-14 11:37:23 · 454 阅读 · 0 评论 -
[POJ1190][NOI1999]生日蛋糕(搜索+剪枝)
传送门首先读题: 本题忽略ππ\pi只将它后面的有理数进行计算,其次对于表面积,整个蛋糕的上表面面积之和等于最大圆的底面积。所以我们只需要计算侧面积,最底那层计算底面积即可。 仍然是一道经典的搜索剪枝题目。我首先把题目所描述的(1~M从底向上)倒过来(1~M从上到底)方便处理,然后我们从下(最大那层)往上搜索。搜索思路: 那么我们首先爆搜,我们由于高度和半径下一层都要...原创 2018-07-14 11:20:08 · 405 阅读 · 0 评论 -
迭代加深和双向搜索
迭代加深 当答案的层数较低,并且搜索的分支较多时,如果直接搜索会消耗很多时间。这时候可以进行多次搜索,每次搜索可以限制一个深度,如果我们在当前深度下搜索不到答案,就增加深度限制,重新搜索一边答案,这样“迭代”且“加深”的过程称为迭代加深。但他的缺点也很明显,每次需要重新搜索一遍,所以在答案的层数比较深的时候不建议使用。【例题】Addition Chains (poj2248) 需要...原创 2018-07-17 15:47:17 · 1812 阅读 · 0 评论 -
[BZOJ5290][HNOI2018]道路(DP)
传送门Day2的题目顺序很有问题啊,竟然把最简单的题放T3。。 不难发现是一个完全二叉树,然后公路连左孩子,铁路连右孩子。 就是一个类似于一个树形dp的东西,突破的关键就在原题中的一个隐晦的条件 任意乡村可以通过不超过40条道路到达首都。那么我们就可以dp:到每个乡村,需要经过多少条公路多少条铁路空间复杂度是20000*40*40的样子,时间复杂度也是相同的。转移用记忆化...原创 2018-04-23 17:02:09 · 322 阅读 · 0 评论 -
[BZOJ1054][HAOI2008]移动玩具(bfs+Hash)
传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=1054震惊!省选竟然出NOIP难度的题! 首先我们观察到4*4的矩阵,状态非常少,那么就在暗示着我们要状压,那么用什么来状压呢?就可以用二进制哈希,用一个数来表示一个4*4 01矩阵的状态。 暴力宽搜即可,记得回溯。听说隔壁Rose写了350+行??code:#in...原创 2018-03-05 20:48:29 · 296 阅读 · 0 评论 -
[BZOJ4424]CodeForces 19# E Fairy(树形dp / Link-Cut-tree)
传送门 http://www.lydsy.com/JudgeOnline/problem.php?id=4424Description 给定 n 个点,m 条边的无向图,可以从图中删除一条边,问删除哪些边可以使图变成 一个二分图。Input 第 1 行包含两个整数 n,m。分别表示点数和边数。 第 2 到 m+1 行每行两个数 x,y 表示有一条(x,y)的边。Output ...原创 2018-03-01 19:37:41 · 353 阅读 · 0 评论 -
[BZOJ2709] [Violet 1]迷宫花园
二分+搜索原创 2018-02-03 15:54:28 · 287 阅读 · 0 评论 -
[BZOJ1193][HNOI2006]马步距离(贪心+BFS)
贪心缩小搜索范围原创 2018-02-01 14:46:47 · 436 阅读 · 0 评论 -
[poj2449]Remmarguts' Date(k短路学习笔记)(未完成)
题目大意就是给出一个图,然后一个起点一个终点,求这两点间的第K短路。一般做法:SPFA+A* k短路的话,我们可以马上想到一个宽搜的做法,从st开始宽搜,当第k次搜索到ed时,所得到的长度即所求。 但是这种方法产生特别多的冗杂状态,因为我们每次的选择是无目标的,那么这时候我们就想:怎么能使得我们的选择有目标呢? 那么就要用到A*惹。 A*的精髓就在估价函数f(x)f(x)f(x),...原创 2017-12-30 11:35:30 · 439 阅读 · 0 评论 -
[BZOJ1085][SCOI2005]骑士精神(A*)
[BZOJ1085][SCOI2005]骑士精神Description 在一个5×5的棋盘上有12个白色的骑士和12个黑色的骑士, 且有一个空位。在任何时候一个骑士都能按照骑士的走法(它可以走到和它横坐标相差为1,纵坐标相差为2或者横坐标相差为2,纵坐标相差为1的格子)移动到空位上。 给定一个初始的棋盘,怎样才能经过移动变成如下目标棋盘: 为了体现出骑士精神,他们必须以最少的步数完成任务。原创 2016-08-25 14:57:00 · 885 阅读 · 0 评论 -
A*与IDA*算法
A* A*算法是基础的启发式算法,常使用“估价函数”减少选择来用于优化搜索的速度。对于当前的状态,我们知道当前已经用了的代价,那么我们可以设计一个估价函数fff来估计未来的状态,当前代价+未来代价作为这个状态的预估总代价。 那么这个估价函数值fff需要满足f(now)≤g(now)f(now)≤g(now)f(now)\leq g(now),其中now表示当前状态,g()表示实际需要花...原创 2018-08-08 20:39:05 · 895 阅读 · 0 评论