算法
文章平均质量分 65
HfCloud
这个作者很懒,什么都没留下…
展开
-
A*搜索四方向寻路 C++代码实现
眼馋A*算法很久了,可是很久却还不能入门。昨天终于狠下心来,花一天使劲折腾它,终于写出了A*搜索,(我写的是自动寻路系统,很多网游里面用的那种)。我也在网上搜了很久。但一直没有找到c++的实现,于是就自己造了这个轮子。下面是几张运行的截图:关于A*算法的理论原理,网上已经有很多文章介绍了,而我只是初学,理论不是特别清晰,所以也不在此献丑了。仅在此贴上代码原创 2016-02-16 08:45:30 · 3578 阅读 · 2 评论 -
NOI2015 软件包管理器 题解
(同步个人博客 http://sxysxy.org/blogs/36 到csdn)题目: http://www.lydsy.com/JudgeOnline/problem.php?id=4196 or http://cojs.tk/cogs/problem/problem.php?pid=2019描述较为复杂,这里不再复述。显然依赖关系构成一棵树。对于安装软件x操作,需要安装x到根上所有未安装的软件原创 2016-09-18 21:15:51 · 405 阅读 · 0 评论 -
OI 字符串 常用哈希方法
(同步个人博客 http://sxysxy.org/blogs/44 到csdn下面这个方法来自 算法竞赛入门经典-训练指南方法对于一个字符串s,令h[i] = h[i+1]*x + s[i] ,其中x是你自选的一个常数。令xp[i] = xp[i-1]*x这样之后定义s的起点为下标i,长度为len的子串的哈希值为 h[i] - h[i+len]*xp[len] 。这个值与子串的位置,子串的内容,原创 2016-10-08 20:48:19 · 3003 阅读 · 0 评论 -
用c语言写一个网络爬虫
写一个网络爬虫写一个网络爬虫,来获取一个网站上感兴趣的信息。最基本的模型就是图。每个页面看作一个节点,若页面A有到达页面B的链接,则添加一条由A到B的单向边。爬虫要遍历这张图。遍历这张图广度优先搜索即可。 不推荐用深度优先搜索(容易陷入单个分支而难以搜索到更广泛全面的信息) (如果不明白,请自行查询图论相关资料)(以上noip普及组难度)但是细节(重点)1 这不是OI题目,不会把节点以编原创 2016-09-08 18:19:40 · 24068 阅读 · 0 评论 -
空间优化的字典树
(同步个人博客 http://sxysxy.org/blogs/29 到csdn)字典树空间优化如果字典树要储存的字符串的字符集比较大,(比如全部的字符),甚至可能有多字节字符。这是我们给每个节点256个子节点吗? 用平衡树(或map <char, int>)牺牲时间来换取空间吗?不,可以进行这样的优化: 我们考虑把一个8位的char,拆开变成2个4位的数据,依次加入字典树。显然4位最大值也只是2^原创 2016-09-08 18:40:16 · 3132 阅读 · 1 评论 -
NOIP2013提高组Day1 解题报告
(同步个人博客 http://sxysxy.org/blogs/37 到csdn)总的来说NOIP2013Day1的这三道题,感觉总的来说还是并不难,并且也比较符合套路。T1是良心的一眼送分题,T2是比较需要思考,代码写起来比较简单的但建立模型需要好好思考的偏重算法思维的题目,T3是比较注重代码能力,代码量稍大(还是只是因为我人傻写得多?)的题目。T1转圈游戏http://cojs.tk/cogs/原创 2016-09-22 15:12:39 · 1846 阅读 · 0 评论 -
最小路径覆盖
(同步个人博客 http://sxysxy.org/blogs/39 到csdn最小路径覆盖是这样的问题:给一个有向无环图,使用最少的路径,不重不漏地覆盖图上所有点。省队集训的时候观神犇的ppt了解到这样一个定理:最小路径覆盖 = 节点数N - 最大匹配。最大匹配是把一个节点拆成两个分属两个集合A,B,对于原图中一条边(u,v)则连接A中u和B中v,最后得到的最大匹配。But why? 0。0 当原创 2016-10-01 21:45:52 · 340 阅读 · 0 评论 -
树上最远点对的线性时间算法
(同步个人博客 http://sxysxy.org/blogs/40 到csdn树上最远点对,就是给一棵树,对于树上所有点对(u, v) 中dist(u, v)的最大值。在hihoCoder上看到了一个很妙的算法 http://hihocoder.com/problemset/problem/1050首先我们可以很明显想到这样一个方法:对于一个节点来说,如果把它看作是整棵树的树根,从树根向下走两条不原创 2016-10-02 00:35:06 · 1249 阅读 · 0 评论 -
后缀自动机 转变为 后缀数组
(同步个人博客 http://sxysxy.org/blogs/41 到csdn)如题 为什么会有这样的需求?像我这只会写后缀自动机的选手遇到LCP相关的问题就一脸无奈,而用后缀数组可以解决这样的问题。而且,不管怎么讲,还是后缀自动机时间复杂度低啊!要是能用后缀自动机弄出来后缀数组那就非常妙了(好,常数这个东西啊...qaq)后缀自动机 代码简单,易于理解,在线,跑得快。后缀自动机 -> 后缀排序原创 2016-10-05 10:19:42 · 2223 阅读 · 0 评论 -
线性规划的单纯形法
(同步个人博客http://sxysxy.org/blogs/78 到csdn…可以到 https://github.com/sxysxy/math/tree/master/simplex 下载本文的markdown文件和代码等相关资料线性规划简介:线性规划(Linear Programming, LP),是运筹学中研究较早、发展较快、应用广泛、方法较成熟的一个重要分支,它是辅助人们进行科学管理的一原创 2016-12-13 14:50:49 · 13191 阅读 · 0 评论 -
[题解] USACO cow hopscotch(牛跳房子)
牛跳房子 题目大意:从网格左上角开始,每次只能转移到严格在当前格子右下方,上面的标记与当前格子不同的格子。求最后到达右下角的格子的方案数。反过来考虑如何转移到当前格子,那就是从严格在左上方,标记与当前格子不同的格子转移来。所以:一眼O((RC)^2)的递推即:#include <cstdio>#include <cstring>#include <cstdarg>#include <queue原创 2017-03-11 15:38:36 · 1474 阅读 · 0 评论 -
第k短路 A*启发式搜索解决
(同步个人博客 http://sxysxy.org/blogs/19 到csdn)给一张图,求两点间第k短的路径的长度。查了相关资料,这个竟然可以用启发式搜索来解决!其实是,在启发式搜索时,同时记录目标点t入队(意味着走到了t)多少次(被”启发”了多少次)。第一次启发到t是第1短路,第二次是第2短…..第k次就是第k短路。通过这个题,我涨了姿势:启发式搜索还能这样用!!搜索中,距离目标点t的估价可以原创 2016-08-25 21:26:31 · 521 阅读 · 0 评论 -
SCOI2006 整数划分
(同步个人博客 http://sxysxy.org/blogs/34 到csdn题目 http://www.lydsy.com/JudgeOnline/problem.php?id=1263大意是,将n划分成n = a1+a2+…..使得划分出来的a1,a2……乘积最大一眼感觉是数学题。但是最后还是百度了一波才了解,要尽量划分出3,如果不能划分出3那就划分出2。为什么呢?问了问学长(%%神犇Fmuc原创 2016-09-15 11:06:13 · 418 阅读 · 0 评论 -
生成函数(母函数)的简单应用
同步个人博客 http://sxysxy.org/blogs/15 到csdn Simple一个简单的问题,给定一个数k,从集合A中选一个数a,集合B中选一个数b,使得a+b = k的方案数有多少?扫描A的所有元素a然后在B里面找k-a --> 哈希/平衡树/stl大fa好!!!3个集合A,B,C呢?n个集合呢?复杂度蹭蹭蹭地就不知道高到哪里去了。(假设每个集合里面的数约为k个,可以试着计算n个集原创 2016-08-19 14:15:37 · 511 阅读 · 0 评论 -
BZOJ1901 动态排名 线段树套平衡树
(同步个人博客 http://sxysxy.org/blogs/14 到csdn)动态区间第k小,http://www.lydsy.com/JudgeOnline/problem.php?id=1901 (权限题所以大致描述下题面:初始有一个长度有n得序列a1,a2…an,要求支持查询序列下标区间l, r内第k小的数,支持修改序列内某个数。序列长度n <= 10000(这里我用来练习线段树套平衡树,原创 2016-08-19 14:18:12 · 431 阅读 · 0 评论 -
JSOI2007 祖码Zuma
(同步个人博客 http://sxysxy.org/blogs/7 到csdn)原题目见 http://www.lydsy.com/JudgeOnline/problem.php?id=1032区间DP,我第一看见这题,好像是去年的时候了。。。。当时觉得超级高大上啊。。。首先预处理出各个连续的颜色出现的位置和数量,可以表示成 (颜色,长度) 的形式,例如颜色 1 1 2 1原创 2016-08-19 14:24:51 · 338 阅读 · 0 评论 -
BZOJ1977 (严格)次小生成树
(同步个人博客 http://sxysxy.org/blogs/30 到 csdn)题目见http://www.lydsy.com/JudgeOnline/problem.php?id=1977 权限题不过还可以在http://cojs.tk/cogs/problem/problem.php?pid=2453 提交求一张无向图的严格次小生成树,严格次小就是权值之和严格小于最小生成树。首先构造最小生成原创 2016-09-09 17:00:36 · 640 阅读 · 0 评论 -
多项式乘法运算 NTT(数论变换)实现
(同步个人博客 http://sxysxy.org/blogs/16 到csdn)多项式乘法 http://uoj.ac/problem/34之前用FFT交了一个无限WA,怀疑是精度有问题然后就转向NTT。关于FFT和NTT力荐这两篇吼文章,讲得太吼了!http://blog.csdn.net/acdreamers/article/details/39026505 http://blog.mis原创 2016-08-19 14:34:11 · 2980 阅读 · 0 评论 -
树链剖分 ZJOI2008 树的统计 Count
(同步个人博客http://sxysxy.org/blogs/3 到csdn)题目大意:有一棵有N个节点,N-1条边的树,每个节点都有一个权值w。现在要求支持以下操作: CHANGE u t 把节点u的权值修改为t,QMAX u v 询问从节点u到v路径上权值最大的节点,QSUM询问从节点u到节点v上所有节点的权值之和。(N <= 3W ,修改/询问次数 <= 20W)LCT并不会写orz,于是树链原创 2016-08-19 14:39:47 · 397 阅读 · 0 评论 -
莫比乌斯反演 讲解
(同步个人博客 http://sxysxy.org/blogs/10) 懵逼乌斯反演?反正WC2016上我是听得一脸懵逼的,也就是学会了这个名词的认读与拼写。->, ->(雾) 这个东西可以用来简化一些运算,对于定义在两个正整数集合上的两个函数f(x)与g(x),满足 ,根据这个式子,我们可以发现 当我们想要计算g(x)的时候,如果直接计算g(x)难以计算(太慢太慢太慢TLE TLE TLE原创 2016-08-19 14:22:42 · 7286 阅读 · 3 评论 -
后缀排序 后缀自动机的应用
同步个人博客 http://sxysxy.org/blogs/23 到csdn)给一字符串的所有后缀排个序输出,字符串长度 <= 100000排序要求字典序小的在前面,在满足这个条件的情况下,短的后缀放到前面例如ababa的后缀排序结果是[a, aba, ababa, ba, baba]。暴力做法很容易想到,枚举出字符串s的总共length(s)个后缀,sort一下,然而time limit ex原创 2016-08-31 13:57:34 · 2108 阅读 · 2 评论 -
NOIP2015运输计划 题解
(同步个人博客 http://sxysxy.org/blogs/27 到csdn)noip2015运输计划,可以在 http://syzoj.com/problem/91提交大意是一棵n个节点的树上要完成m个从a到b任务,经过树上每条边都要花费一定时间。可以把树上其中一条边通过所需时间改为0,问完成m个任务中花费的时间最大值 的最小值是多少。(注意好断句…((见到树就想剖一剖这是病得治啊首先考虑如何原创 2016-09-02 21:41:03 · 490 阅读 · 0 评论 -
狄利克雷卷积与莫比乌斯反演
(声明:同步个人博客 http://sxysxy.org/blogs/123 到 csdn)狄利克雷卷积:给出 元素为数论函数的集合G,与二元运算符 *,定义f * g 狄利克雷卷积:运算满足:交换律:结合律单位元逆元特别地,狄利克雷卷积的逆元:莫比乌斯反演:有数论函数f, g 其中μ是莫比乌斯函数:根据莫比乌斯函数的重要性质:显然:莫比乌斯函数的逆元因为把上面这个性质改写一下:根据定义即可得出原创 2017-03-12 17:54:17 · 3191 阅读 · 4 评论