随笔分类 - NOI 搜索
摘要:题目描述 一棵有点权的有根树如果满足以下条件,则被轩轩称为对称二叉树: 二叉树; 将这棵树所有节点的左右子树交换,新树和原树对应位置的结构相同且点权相等。 下图中节点内的数字为权值,节点外的 id 表示节点编号。 现在给出一棵二叉树,希望你找出它的一棵子树,该子树为对称二叉树,且节点数最多。请输出这
阅读全文
摘要:题目链接~~> 这题用 dfs()N范围一大了过不了,需要打表,用状态压缩可以状态压缩真是太强大了。 状态压缩 1: 在状态压缩中,通常用 ( 1 > 1,( ContDiag | curcol ) > 1。而因为当前行摆放状态为curcol的皇后的主对角线斜向攻击,下一行...
阅读全文
摘要:POJ 1077 Eight The 15-puzzle has been around for over 100 years; even if you don't know it by that name, you've seen it. It is constructed with 15...
阅读全文
摘要:如果目标也已知的话,用双向BFS能很大提高速度 单向时,是 b^len的扩展。 双向的话,2*b^(len/2) 快了很多,特别是分支因子b较大时 至于实现上,网上有些做法是用两个队列,交替节点搜索 ×,如下面的伪代码: while(!empty()) { ...
阅读全文
摘要:#include using namespace std; template void Perm(T a[], int k, int m) { if(k==m) { for(int i=0; i<=m; i++) c...
阅读全文
摘要:#include #include #include using namespace std; //表结点 typedef struct ArcNode{ int adjvex;//该弧所指向的顶点的位置 ArcNode *nextarc;//指向下一条弧...
阅读全文
摘要:图的遍历一般由两者方式:深度优先搜索(DFS),广度优先搜索(BFS),深度优先就是先访问完最深层次的数据元素,而BFS其实就是层次遍历,每一层每一层的遍历。 1.深度优先搜索(DFS) 我一贯习惯有举例的方法来讲,示例如下:红色代表的是正搜索,蓝色代表回溯,最下面为标志数组。 ...
阅读全文
摘要:搜索+剪枝——POJ 1011 Sticks 博客分类: 算法 非常经典的搜索题目,第一次做还是暑假集训的时候,前天又把它翻了出来 本来是想找点手感的,不想在原先思路的基础上,竟把它做出来了而且还是0ms过得。仔细想想,对搜索又有了一点点认识。 题目要求将一系列的...
阅读全文