摘要: 对于这道题来说,每个时刻的状态是整个棋盘所有棋子的位置,即:任何一个棋子位置发生了移动,都会使得状态转移。 因此,需要采取将整个状态作为广搜的搜索对象,进行状态压缩。采用哈希得到每个状态的对应的数值,同时维护一个 map 判重即可,顺便记录走到当前状态所需的最短步数。 代码如下 阅读全文
posted @ 2018-11-06 21:53 shellpicker 阅读(271) 评论(0) 推荐(0) 编辑
摘要: 核心思想:倍增 ST表是一个支持静态查询区间最大值的数据结构,预处理时间复杂度为 $O(nlogn)$,$O(1)$ 时间查询。 代码如下 cpp include using namespace std; const int maxn=1e5+10; inline int read(){ int x 阅读全文
posted @ 2018-11-06 17:13 shellpicker 阅读(145) 评论(0) 推荐(0) 编辑
摘要: 题目大意:给定一棵 N 个节点的无根树,边有边权,统计树上边权和不大于 K 的路径数。 对于每条树上路径,对于每一个点来说,该路径只有经过该点和不经过该点两种情况,对于不经过该点的情况,可以转化成是否经过以该点为树根的子树节点的子问题,由此构成一个分治策略。 对于点分治来说,限制算法复杂度的瓶颈之一 阅读全文
posted @ 2018-11-05 23:40 shellpicker 阅读(119) 评论(0) 推荐(0) 编辑
摘要: 题目大意:给定一个 N 个点,M 条边(存在反向边)的有向图,点有点权,求一条从 1 到 N 的路径上,任意选出两个点 p,q (p 在前,q在后),两点点权的差值最大。 根据最短路的 dp 思想,可以先对原图进行一次 dij ,求出从源点出发,到下标为 X 的点的路径中,最小的点权;再对反图进行一 阅读全文
posted @ 2018-11-03 21:45 shellpicker 阅读(193) 评论(0) 推荐(0) 编辑
摘要: 题目大意:给定一个 N 个顶点,M 条边的无向图,求一条从 1 号节点到 N 号节点之间的路径,使得第 K+1 大的边权最小,若 1 与 N 不连通,输出 1。 最小化最大值一类的问题,采用二分答案即可,每次跑一遍 dij ,若边权大于二分的值,那么等效边权为1,否则边权为0,最后判断从 1 到 N 阅读全文
posted @ 2018-11-03 20:44 shellpicker 阅读(163) 评论(0) 推荐(0) 编辑
摘要: 代码如下 cpp include using namespace std; const int maxv=1e4+10; const int maxe=5e5+10; const int inf=0x3f3f3f3f; inline int read(){ int x=0,f=1;char ch; 阅读全文
posted @ 2018-11-03 20:08 shellpicker 阅读(119) 评论(0) 推荐(0) 编辑
摘要: 题目大意:给定 N 个点,M 条边的有向图,边有边权,求从 1 号顶点到 N 号顶点的最短乘积路径。(经过的路径乘积最小)结果对9987取模。 乘积会爆 long long ,同时由于 dij 算法的性质,又不能在 bfs 的过程中对答案取模。 同时,根据对数的性质有 $log(x)+log(y)= 阅读全文
posted @ 2018-11-03 19:33 shellpicker 阅读(456) 评论(0) 推荐(0) 编辑
摘要: 莫队算法是一种针对询问进行分块的离线算法,如果已知区间 [ l , r ] 内的答案,并且可以在较快的时间内统计出区间 [ l 1, r ],[ l , r+1 ] 的答案,即可使用莫队算法。 莫队复杂度证明如下: 假设有 $O(\sqrt n)$ 个询问在不同块(块与块的间隔处)中,有 $O(\s 阅读全文
posted @ 2018-11-02 16:54 shellpicker 阅读(163) 评论(0) 推荐(0) 编辑
摘要: 题目大意:给定一个有 N 个正整数的序列,求出此序列满足和大于等于 S 的长度最短连续子序列。 cpp include include using namespace std; const int maxn=1e5+10; int n,s,a[maxn]; void read_and_parse() 阅读全文
posted @ 2018-11-01 23:51 shellpicker 阅读(94) 评论(0) 推荐(0) 编辑
摘要: 当遇到一道题数据爆long long时,先写出小范围数据的算法模板,之后再根据需要用高精度数据的地方进行修改,可以减少失误。 update at 2019.3.6 代码如下 阅读全文
posted @ 2018-11-01 16:43 shellpicker 阅读(135) 评论(0) 推荐(0) 编辑