摘要: 金明的预算方案 显然是个背包问题 把每个主件和它对应的附件放在一组,枚举每一组,有以下几种选法: 1.都不选 2.只选主件 3.一个主件+一个附件 4.一个主件+两个附件 于是就成了01背包。。 阅读全文
posted @ 2018-04-16 20:52 yjk 阅读(141) 评论(0) 推荐(0)
摘要: https://www.luogu.org/problemnew/show/P1939 矩阵快速幂 斐波那契数列 首先看一下斐波那契数列的矩阵快速幂求法: 有一个矩阵1*2的矩阵|f[n-2],f[n-1]|,要使它乘一个2*2的矩阵,使得到的矩阵为|f[n-1],f[n]|,即|f[n-1],f[ 阅读全文
posted @ 2018-04-16 20:46 yjk 阅读(175) 评论(0) 推荐(0)
摘要: 最短路计数 题目链接 然而是一道搜索。 一定要%RQY 阅读全文
posted @ 2018-04-16 20:33 yjk 阅读(110) 评论(0) 推荐(0)
摘要: 带修莫队算法 莫队算法是一种比较暴力的离线区间查询算法,充分利用前期查询的结果,基于分块的思想进行优化,得到比较优秀的时间复杂度 带修莫队增加了单点修改操作,思想大致如下: 首先记录下每一次查询操作的区间、次序、上一次的修改次序 为了充分优化时间复杂度,将询问按左端点所属区间排序,若左端点在同一区间 阅读全文
posted @ 2018-04-03 19:06 yjk 阅读(186) 评论(0) 推荐(0)
摘要: 八数码难题 题目描述 一.广搜: 首先要考虑用什么存每一个状态 显然每个状态都用一个矩阵存是很麻烦的。 我们可以考虑将一个3*3的矩阵用一个字符串或long long 存。 每次扩展时再转化为矩阵。 另外一个问题是判重,对于已经搜过的状态,就不再扩展了。 10^9次方的bool数组会爆空间 可以考虑 阅读全文
posted @ 2018-03-24 09:00 yjk 阅读(544) 评论(0) 推荐(0)
摘要: 聪明的质监员 题目链接:https://www.luogu.org/problemnew/show/P1314 Y(W)随W的值增大而减小 二分W的值,找到最小的W使得Y(W)>S; 比较Y(W)和Y(W-1)与S的差值。 计算Y(W): O(n)预处理一维前缀和数组, O(m)暴力计算出Y(W) 阅读全文
posted @ 2018-03-08 18:43 yjk 阅读(159) 评论(0) 推荐(0)
摘要: 电话线 题目链接:https://www.luogu.org/problemnew/show/P1948 二分答案+最短路 我们要求一条1~n的路径,使其中的第k+1大的数最小。 二分第k+1大的数的大小h,比h小的边可以看为0,因为它们不会让第k+1大的数更大;比h大的边边权设为1,最后求出的1~ 阅读全文
posted @ 2018-03-07 21:42 yjk 阅读(186) 评论(0) 推荐(0)
摘要: 货车运输 题目链接 显然,从一点走到另一点的路径中,最小值最大的路径一定在它的最大生成树上 所以要先求出最大生成树,再在生成树上找最近公共祖先,同时求出最小值。 阅读全文
posted @ 2018-03-07 11:34 yjk 阅读(151) 评论(0) 推荐(0)
摘要: 斐波那契数列 题目链接:https://www.luogu.org/problemnew/show/P1962 矩阵A 1,1 1,0 用A^k即可求出feb(k)。 矩阵快速幂 阅读全文
posted @ 2018-03-06 19:21 yjk 阅读(228) 评论(0) 推荐(0)
摘要: 矩阵快速幂 题目描述 矩阵乘法: A[n*m]*B[m*k]=C[n*k]; C[i][j]=sum(A[i][1~n]+B[1~n][j]) 为了便于赋值和定义,我们定义一个结构体储存矩阵: X*Y: 快速幂: 把k转化为二进制, 如k=10(10)=1010(2); a^10=a^(2^3) * 阅读全文
posted @ 2018-03-06 16:30 yjk 阅读(212) 评论(0) 推荐(0)