摘要: 状压系列二。 "题目链接" 题目大意:给定一个$n m$的矩阵,其中有些位置能放,有些不能。规定一个格子放了则它的上下左右均不能放。问放格子的方案有多少种。 考虑到$n,m$很小,就像是状压了。 考虑状压的表示方法,我们把每一行的$01$矩阵压成二进制,表示这一行的状态。 那么我们压完行后,显然有$ 阅读全文
posted @ 2019-08-23 19:30 Refined_heart 阅读(159) 评论(0) 推荐(0) 编辑
摘要: 仅仅是笔者对于状态压缩类$dp$的初步练习吧。 [题目链接](https://www.luogu.org/problem/P1896] 题目大意:给定一个$n n$的棋盘,在棋盘上放国王,国王的攻击范围是它周围的八个格子。求放$k$个国王的合法方案数。 本题很像八皇后问题,但是由于搜索状态数量太多导 阅读全文
posted @ 2019-08-23 18:40 Refined_heart 阅读(282) 评论(0) 推荐(0) 编辑
摘要: 前置芝士:Tarjan求强连通分量 对于一个有向图中的两个点,对于$V_i V_j$有一条边且$V_j V_i$有一条边(即能互相到达),就是一个强连通分量(不局限于两个点) 我们可以用$Tarjan$求出一个有向图中所有的强连通分量。 那么,在一些图中可以将强连通分量缩成一个点。并对它做一个标记。 阅读全文
posted @ 2019-08-16 21:58 Refined_heart 阅读(278) 评论(0) 推荐(0) 编辑
摘要: 一道有意思的差分约束,涨知识了。 题目地址:$luogu$ $P2294$ 看到这道题是不是感觉与差分约束一点关系没有啊。 分析一下从$s$月到$t$月的收入为$c$这句话。 注意是收入,它有累加的性质。也就是说: $sum[t] sum[s 1]=c$,即前缀和。 那么我们如果以这一条为约束条件建 阅读全文
posted @ 2019-08-15 20:54 Refined_heart 阅读(197) 评论(0) 推荐(0) 编辑
摘要: 前置芝士:SPFA判负环 对于差分约束系统,就是来解决一系列类似下面的问题: 差分约束系统是一种特殊的$N$元一次不等式组,它包含$N$个变量$X_1...X_n$以及$M$个约束条件。每个约束条件都是由两个变量做差构成的。 我们要求的是,一组解$X_1=a,X_2=b...$满足所有的约束条件。 阅读全文
posted @ 2019-08-15 20:02 Refined_heart 阅读(156) 评论(0) 推荐(0) 编辑
摘要: 由于本蒟蒻太菜,所以只能写一下比较简单的母函数以及应用了,希望对大家有帮助。 定义:对于序列$A={a_0,a_1....a_n}$,其对应的母函数为$F(x)=a_0+a_1x+a_2x^2+.....$ 就这样,我们构造出了一个母函数。这个是普通型母函数。 我们先讨论一下最简单的母函数: $F( 阅读全文
posted @ 2019-08-14 21:20 Refined_heart 阅读(405) 评论(0) 推荐(0) 编辑
摘要: 字符串$Hash$. 笔者实在太菜了,到现在还没有熟练掌握$Hash$,就来这里写一篇学习笔记。 $Description$ 有三个好朋友喜欢在一起玩游戏,$A$君写下一个字符串$S,B$君将其复制一遍得到$T,C$君在T的任意位置(包括首尾)插入一个字符得到$U$.现在你得到了$U$,请你找出$S 阅读全文
posted @ 2019-08-07 20:53 Refined_heart 阅读(314) 评论(1) 推荐(0) 编辑
摘要: 题目链接 解: dp题目。 先对题目分析一下:目的是让我们最大化区间中任意一段的和乘以它的最小值。 怎么办? 首先,据题目得知,前缀和一定是递增的,因为没有负数。 那么,我们可以得出结论,对于任意区间的最小值x,它的区间长度越大,它的贡献就越大。 那我们找它的右边和左边第一个小于它的值的下标就好了。 阅读全文
posted @ 2019-08-01 12:55 Refined_heart 阅读(199) 评论(0) 推荐(0) 编辑
摘要: 题目链接 题目大意就是,每个点连着两条边,就是人喜欢做的两个位置,求所有座位匹配上的最大匹配 这里,我们开一个二维的就好,表示两列的座位是否匹配上,返回01即可。 匈牙利模板题。 阅读全文
posted @ 2019-07-27 19:55 Refined_heart 阅读(178) 评论(0) 推荐(0) 编辑
摘要: 题目链接 二分图最大匹配的模板。 对于二分图: 我们称,一个图中,当且仅当其没有奇环时,是一个二分图。 那么,最大二分图匹配就是: 给定二分图,现在要选出一些边,使得与每一个点相连的边最多选出一条,求最多选出的边数。 当所有边都被匹配上时,称之为一个完美的二分图匹配。 来一个例题吧: 从前有a个男生 阅读全文
posted @ 2019-07-27 19:37 Refined_heart 阅读(377) 评论(0) 推荐(0) 编辑
摘要: 明天好像要考链表今晚笔者来了解下。 题目链接 解: 对于这道题,由于前面要与后面重新连起来,于是我们考虑链表。 我们先正常用链表维护关系。然后,我们从大到小枚举。 对于这个数,如果它后面有数(因为是一对一起进入),就把它们压入队列(输出即可) 这样就利用链表完成了一个贪心的过程。 Code: 阅读全文
posted @ 2019-07-22 18:37 Refined_heart 阅读(179) 评论(0) 推荐(0) 编辑
摘要: 数论基础篇吧,与Exgcd有脱不开的关系。 这个算法,就是要让我们求n个线性同余方程的共同解的最小值,即最小整数解。 我们可以设:M为所有模数之积,Mi=M/b[i],ti为Mi*ti在模ai(模数)意义下同余1的方程的一组解,且模数均互质。 我们则有:方程组的特解为M1*t1*b1+...+Mn* 阅读全文
posted @ 2019-07-21 20:06 Refined_heart 阅读(217) 评论(0) 推荐(0) 编辑
摘要: 笔者大概看了一下单调队列对于DP的优化,故撰此文,望有帮助。 (dp还是推式子难啊qwq) 例题1. 题目大意:在n个数的序列中,选择数字,使得其连续不超过k个数,且和最大。 本题的方程相对好推:设dp[i][0/1]为到了第i个数,且第i个数不选/选的最大值。 则有转移:dp[i][0]=max( 阅读全文
posted @ 2019-07-21 12:33 Refined_heart 阅读(146) 评论(0) 推荐(0) 编辑
摘要: 我们已知,求最大公约数的方法: 求A,B两数的最大公约数,递归求解,递归边界是B==0. gcd(a,b)=gcd(b,a%b) 我们进一步来求Ax+By=Gcd(A,B)的解。 尝试套用欧几里得求法? 我们希望,有整数X,Y,使得: bX+(a%b)Y=Gcd(a,b). 那么我们有: bX+(a 阅读全文
posted @ 2019-07-19 20:19 Refined_heart 阅读(179) 评论(0) 推荐(0) 编辑
摘要: 算是笔者的数学第一题吧…… 题目链接 解: 显然我们已知的条件有:青蛙A和青蛙B的初始坐标,跳动速度以及纬线长度。想要相遇,显然要使得跳动长度是L的整数倍。 那么,我们设它们跳了T步,则有: X+mT-(Y+nT)=LP,P为正整数。 移项整理,得: X+mT-Y-nT=LP X-Y+(m-n)T= 阅读全文
posted @ 2019-07-19 20:10 Refined_heart 阅读(928) 评论(3) 推荐(0) 编辑
摘要: 题目链接 笔者太菜直到现在才开始看最短路加二分…… 解: 显然题目要二分,因为根据多年的经验,看到最大值最小,二话不说想二分…… 既然问的是收费情况,那我们不妨二分收费情况。 题目都让我们输入交费数组了,不用它用谁呢? l=1,r=n,开始二分。注意,左右边界是数组下标。 二分前,注意排序,sort 阅读全文
posted @ 2019-07-17 09:20 Refined_heart 阅读(155) 评论(0) 推荐(0) 编辑
摘要: 线段树差分经典题。 题目链接 解: 对于题目中要求的维护区间颜色种数,暴力维护必定不可取。于是,我们考虑线段树的性质:从下向上维护左右区间信息。 那么,我们可不可以利用这一点来简单维护它的颜色种类数呢? 我们可以维护一组地雷(颜色)的开头和结尾。 显然,我们这样可以任意求出任意区间的开头数和结尾数。 阅读全文
posted @ 2019-07-15 19:45 Refined_heart 阅读(211) 评论(0) 推荐(0) 编辑
摘要: 好久没有看图论了,就从最短路算法开始了。 dijkstra算法的本质是贪心。只适用于不含负权的图中。因为出现负权的话,贪心会出错。 一般来说,我们用堆(优先队列)来优化,将它O(n2)的复杂度优化为O((m+n)logn) 模板链接 套用dijkstra模板即可。给出范例: 简单例题1: 仍旧是简单 阅读全文
posted @ 2019-07-12 08:46 Refined_heart 阅读(208) 评论(0) 推荐(0) 编辑
摘要: 题目链接 我来补博客例题了…… 对于本题,我们维护不同物种之间的关系。设有动物A,B,则必有: 1.A>B 2.A=b 3.A<B. 所以,对于三种关系,我们都需要维护。 不妨,我们开三倍大小的并查集,其中,1~n是A种群,n+1~2n是B种群,2n+1~3n是C种群,并设有: A>B,B>C,C> 阅读全文
posted @ 2019-07-10 15:26 Refined_heart 阅读(423) 评论(0) 推荐(1) 编辑
摘要: 笔者最近刷到了一道带权并查集的题目,当做入门博客写一篇学习笔记吧。 题目链接 题目中要求求距离+换爹,很显然,暴力的dfs在20000的数据下绝对会被卡的。 自然想到,什么数据结构可以快速维护父子关系? 显然有并查集。 那么,我们要做的就是修改并查集,使它能够维护距离了。 那么,我们在每一次更新父亲 阅读全文
posted @ 2019-07-09 16:47 Refined_heart 阅读(808) 评论(0) 推荐(2) 编辑