随笔分类 -  BZOJ

1
摘要:题解: 区间DP 考虑状态的设计: $dp[i][j][0/1]$表示原字符串的$i j$区间有无在中间加$M$。并且默认在$i$之前加入$M$压缩后的最小长度,显然有转移: $$ dp[i][j][0]=\min_{k=i}^j(dp[i][k][0]+j k) $$ $$ dp[i][j][0] 阅读全文
posted @ 2018-09-05 08:56 Jack_the_Ripper 阅读(138) 评论(0) 推荐(0)
摘要:题面: "bzoj1396" 题解: 先建出SAM,并计算right集合大小。显然符合条件的点的right集合大小为1. 对于每个right集合为1的状态显然可以算出这些状态的pos以及maxlen和minlen(fa的len+1)。 然后对于在pos和pos minlen+1区间内的字符显然必须选 阅读全文
posted @ 2018-06-21 16:01 Jack_the_Ripper 阅读(173) 评论(0) 推荐(0)
摘要:先Orz: 一类关于通配符匹配的字符串问题都是可以用FFT来解决的 题面: "bzoj 4503" pre : 看了题发现这题不是和 "CodeForces_528D" 一样吗,然后就同样的写了。。26遍FFT,果断TLE 题解 P.S. 对于这类只有相等匹配和万能匹配的字符串问题可以一遍FFT 令 阅读全文
posted @ 2018-06-20 15:51 Jack_the_Ripper 阅读(299) 评论(0) 推荐(0)
摘要:题面: "bzoj_2302" 题解: 令$dp[i][j]$表示 编号 $\leq i$的人有j个的方案数; $cnt[i]$表示编号指定为$i$的人数,$sum[i]$表示编号可以$\leq i$的人数 有转移方程 $$ dp[i][j]=\sum_{k=cnt[i]}^{j i+1}dp[i 阅读全文
posted @ 2018-06-14 16:31 Jack_the_Ripper 阅读(170) 评论(1) 推荐(0)
摘要:题面: "BZOJ3157" 一句话题意: 求: $$ \sum_{i=1}^ni^m\ \times m^i\ (mod\ 1e9+7)\ \ (n \leq 1e9,m\leq200)$$ 题解 令 $$ DP[i]=\sum_{k=1}^n k^i m^k $$ 则 $$ (m 1)DP[i] 阅读全文
posted @ 2018-06-14 15:11 Jack_the_Ripper 阅读(248) 评论(0) 推荐(0)
摘要:题目: https://www.lydsy.com/JudgeOnline/problem.php?id=3000 题解: 首先n很大,O(n)跑不过,那么就要用一些高端 而且没听过 的东西——stirling公式 shirling公式: n!≈√(2πn)*(n/e)^n 这个公式对于n很大的解还 阅读全文
posted @ 2018-04-19 10:49 Jack_the_Ripper 阅读(205) 评论(0) 推荐(0)
摘要:题目: https://www.lydsy.com/JudgeOnline/problem.php?id=1671 题解: 按题意分别从贝茜和骑士bfs然后meet_in_middle。。 把一个逗号打成分号调了20分钟。。。 代码: 阅读全文
posted @ 2018-04-19 08:30 Jack_the_Ripper 阅读(276) 评论(0) 推荐(0)
摘要:题面: https://www.lydsy.com/JudgeOnline/problem.php?id=3192 题解: 首先每次一定是来回移动直到最大的到顶上。 所以我们可以将第两个堆的堆顶接起来形成一个队列。 然后相当于中间一个象征两堆分界的指针在来回移动。 用树状数组维护一下区间内删除了几个 阅读全文
posted @ 2018-04-17 14:25 Jack_the_Ripper 阅读(128) 评论(0) 推荐(0)
摘要:题面: https://www.lydsy.com/JudgeOnline/problem.php?id=1491 题解: 先看数据范围,n<=100。。欸可以乱搞了 首先因为小学学过的乘法原理,a->b有n种走法,b->c有m种走法,那么a->c有n*m种走法。 那么我们就用一个类似邻接矩阵的p矩 阅读全文
posted @ 2018-04-17 13:40 Jack_the_Ripper 阅读(160) 评论(0) 推荐(0)
摘要:题目: https://www.lydsy.com/JudgeOnline/problem.php?id=1878 题解: 赤果果的莫队板子题,主要是orz一波博客https://www.cnblogs.com/Paul-Guderian/p/6933799.html 代码: 阅读全文
posted @ 2018-04-17 08:45 Jack_the_Ripper 阅读(98) 评论(0) 推荐(0)
摘要:题目: https://www.lydsy.com/JudgeOnline/problem.php?id=2733 题解: 建n棵动态开点的权值线段树,然后边用并查集维护连通性,边合并线段树维护第k重要。 其实实现还是很简单的。。 代码: 阅读全文
posted @ 2018-04-15 16:46 Jack_the_Ripper 阅读(151) 评论(0) 推荐(0)
摘要:题面: https://www.lydsy.com/JudgeOnline/problem.php?id=3613 题解: 考虑前面的数越小答案越优秀,于是我们二分答案,判断时让前面的数达到所能达到的最小值,这样最优秀。。 代码: 阅读全文
posted @ 2018-04-10 10:35 Jack_the_Ripper 阅读(144) 评论(0) 推荐(0)
摘要:题目: https://www.lydsy.com/JudgeOnline/problem.php?id=1912 题解: 首先,显然当不加边的时候,遍历一棵树每条边都要经过两次。那么现在考虑k==1的情况,考虑加入的这一条边有什么作用。 显然,如图4边的作用就是使得原来的1-2-3-3-2-1路线 阅读全文
posted @ 2018-04-10 09:47 Jack_the_Ripper 阅读(342) 评论(1) 推荐(0)
摘要:题面: bzoj题面有误,还是看luogu的吧 https://www.luogu.org/problemnew/show/P1892 题解: 种类并查集。。 因为有敌人的敌人是朋友这个条件,所以需要一个中转点。。 因此,将每个点拆成两个点,一个是朋友点,另一个是敌人点。当读到A与B是朋友时,就将A 阅读全文
posted @ 2018-04-09 17:35 Jack_the_Ripper 阅读(202) 评论(0) 推荐(0)
摘要:题面: https://www.lydsy.com/JudgeOnline/problem.php?id=1854 题解: 1.二分图匹配: 首先我们发现每件装备只能在两种属性中选一种。因此,我们以每个装备的编号向两种属性分别连边。然后用1-n的属性分别进行向装备的匹配,一旦有一种匹配不上就退出。 阅读全文
posted @ 2018-04-09 15:51 Jack_the_Ripper 阅读(236) 评论(0) 推荐(0)
摘要:题面: https://www.lydsy.com/JudgeOnline/problem.php?id=4562 一句话题意:给一个DAG,求有多少条不完全相同的链,使链首入度为0,链尾出度为0。 题解: 将每个入度为零的点权值为一,然后在拓扑排序的过程中将自身的权值加到出边所连的点,然后清空自身 阅读全文
posted @ 2018-04-09 15:23 Jack_the_Ripper 阅读(282) 评论(1) 推荐(0)
摘要:题面: https://www.lydsy.com/JudgeOnline/problem.php?id=1054 题解: 将每一种状态十六位压成二进制,然后bfs。。不解释。。 p.s.注意特判初始==目标; 代码: 阅读全文
posted @ 2018-04-08 13:06 Jack_the_Ripper 阅读(180) 评论(2) 推荐(0)
摘要:题目: https://www.lydsy.com/JudgeOnline/problem.php?id=1996 题解: 这题刚拿到手的时候一脸懵逼qwq,经过思考与分析(看题解),发现是一道区间dp 首先我们考虑最终数列的形成过程,可以看做是由一个序列向左右不断加数形成的,因此,就有一个很美妙的 阅读全文
posted @ 2018-04-08 12:18 Jack_the_Ripper 阅读(184) 评论(2) 推荐(0)
摘要:题面: https://www.lydsy.com/JudgeOnline/problem.php?id=1143 一句话题意:给一个DAG(有向无环图),求选出尽量多的点使这些点两两不可达,输出点个数。 N、M,分别表示点数和有向边数,n<=100,m<=1000。 题解: 第一眼看到题,发现是个 阅读全文
posted @ 2018-04-08 11:03 Jack_the_Ripper 阅读(153) 评论(0) 推荐(0)
摘要:题面:https://www.cnblogs.com/fu3638/p/6759919.html 硬币购物一共有4种硬币。面值分别为c1,c2,c3,c4。某人去商店买东西,去了tot次。每次带di枚ci硬币,买si的价值的东西, 请问每次有多少种付款方法。其中di,s<=100000,tot<=1 阅读全文
posted @ 2018-04-08 09:10 Jack_the_Ripper 阅读(263) 评论(0) 推荐(0)

1