码迷,mamicode.com
首页 >  
搜索关键字:启发式    ( 591个结果
poj 2449 Remmarguts' Date 【SPFA+Astar】【经典】
题目:poj 2449 Remmarguts' Date 题意:给出一个图,求k短路。 算法:SPFA求最短路 + AStar 下面引用大牛的分析:  首先,为了说话方便,列出一些术语:     在启发式搜索中,对于每个状态 x,启发函数 f(x) 通常是这样的形式: f(x) = g(x) + h(x)    ...
分类:其他好文   时间:2014-11-07 13:09:16    阅读次数:156
并查集路径压缩与启发式合并
〖程序清单〗初始化:fori:=1tondofather[i]:=i;因为每个元素属于单独的一个集合,所以每个元素以自己作为根结点。寻找根结点编号并压缩路径:functiongetfather(v:integer):integer;beginiffather[v]=vthenexit(v);fath...
分类:其他好文   时间:2014-11-04 09:15:44    阅读次数:119
质因数分解的rho以及miller-rabin
一、前言质因数分解,是一个在算法竞赛里老生常谈的经典问题。我们在解决许多问题的时候需要用到质因数分解来辅助运算,而且质因数分解牵扯到许许多多经典高效的算法,例如miller-rabin判断素数算法,rho启发式搜索质因数分解算法等。在此文里,我要介绍的就是miller-rabin算法以及rho启发式...
分类:其他好文   时间:2014-10-27 17:04:58    阅读次数:348
BZOJ 2809 APIO2012 dispatching Treap+启发式合并 / 可并堆
题目大意:给定一棵树,选定一棵子树中的一些点,薪水和不能超过m,求点的数量*子树根节点的领导能力的最大值 考虑对于每个节点,我们维护一种数据结构,在其中贪心寻找薪金小的雇佣。 每个节点暴力重建一定不行,我们考虑可并数据结构,每个节点将子节点的信息直接合并即可 可以用启发式合并的Treap,也可以用可并堆 今天特意去学了这玩应0.0 先写了左偏树 然后又写了下随机堆…… 后者速度上更快一些 ...
分类:Windows程序   时间:2014-10-24 14:45:43    阅读次数:295
BZOJ 1483 HNOI2009 梦幻布丁 链表+启发式合并
题目大意:给定n个布丁,每个布丁有一个颜色,多次将某种颜色的所有布丁变为另一种颜色,多次询问颜色段数 数据范围:n 链表的启发式合并0.0 一直没写明白 其实就是开个链表记录每种颜色的位置,合并时撸一遍短的链看看两边是不是长链的颜色就行 不过交换比较麻烦0.0 要开个数组记录每个数字代表的真实颜色 交换时把数组的这两个位置也交换下就可以了 注意用过的垃圾不要留在原位 size合并掉就清零 ...
分类:其他好文   时间:2014-10-24 14:40:30    阅读次数:146
BZOJ 2809 APIO 2012 dispatching 平衡树启发式合并
题目大意:给出一棵树,每一个节点有两个值,分别是这个忍者的薪水和忍者的领导力。客户的满意程度是这个点的领导力乘能够取得人数,前提是取的人的薪水总和不超过总的钱数。 思路:只能在子树中操作,贪心的想,我们只要这个子树中cost最小的那些点就可以了。所以就深搜一次,每到一个节点上,把自己和所有子节点的平衡树启发式和并,然后保留不超过总钱数的人数,统计。数据范围比较大,能开long long的...
分类:Windows程序   时间:2014-10-24 10:59:06    阅读次数:248
BZOJ 2733 HNOI2012 永无乡 Treap+启发式合并
题目大意:给定一个无向图以及n个点的排名,多次连接一条边,多次求某个点所在联通块中排名第k小的点的编号 初始对于每个点建立一棵只有一个节点的Treap,然后每次连接两个点,利用并查集找到两个点的根节点,将size较小的Treap暴力拆解插入大的中,然后将小的并查集合并到大的中 今天下午各种脑残,一个小小的Treap改了不下10遍0.0 快去喝脑白金0.0 #include #include ...
分类:其他好文   时间:2014-10-23 17:42:12    阅读次数:228
BZOJ 3123 SDOI 2013 森林 可持久化线段树+启发式合并
题目大意:给出一个森林,每个节点都有一个权值。有若干加边操作,问两点之间路径上的第k小权值是多少。 思路:这题和COT1比较像,但是多了连接操作。这样就只能暴力合并连个树。启发式合并会保证时间复杂度不至于太大。然后就是用可持久化线段树维护一个树的信息,按照dfs序来建树,每个节点的可持久化链的参考版本就是它父亲的版本。之后利用权值线段树可区间加减的特性,用f[x] + f[y] - f[...
分类:其他好文   时间:2014-10-21 10:26:39    阅读次数:265
BZOJ 3674 可持久化并查集加强版 可持久化并查集
题目大意:同3673 强制在线 同3673 只不过慢了一些0.0 这道题只写路径压缩比只写启发式合并要快一点点 两个都写就慢的要死0.0 改代码RE的可能是内存不够 #include #include #include #include #define M 200200 using namespace std; struct Tree{ Tree *ls,*rs; int num; }...
分类:其他好文   时间:2014-10-20 19:30:35    阅读次数:164
BZOJ 3123 SDOI2013 森林 可持久化线段树+倍增LCA+启发式合并
题目大意:给定一棵森林,每个点有权值,提供两种操作: 1.查询两点间路径上第k小的权值 2.将两个点之间连一条边 保证连接后仍是一座森林 可持久化线段树部分同Count On A Tree 只是这道题加了个连接操作 对于连接操作我们要用到启发式合并 就是把小的那棵树暴力重建 很简单的一个操作但是可以证明是均摊O(nlogn)的 大小我用了并查集 其实记录根就可以了 此外本题的多组数据是...
分类:其他好文   时间:2014-10-20 13:36:39    阅读次数:291
591条   上一页 1 ... 54 55 56 57 58 ... 60 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!