训练集
西行妖下的亡灵
这个作者很懒,什么都没留下…
展开
-
KMP,字典树与AC自动机,哈希算法,01字典树
KMP中的一个重要思想与AC自动机非常相似,就是失配指针。在kmp算法中指匹配失败后该返回到字符串的哪个位置,也就是俗称的特定位置的复活出生点。 KMP模板如下: //#include<pch.h> #include <iostream> #include <cstdio> #include <bits/stdc++.h> #include&l...原创 2019-08-09 23:16:42 · 151 阅读 · 0 评论 -
区间DP专题
LIGHTOJ1422 这个题可以从两种角度来考虑,第一种是根据题意中的套衣服设定,如果出现一件衣服是之前穿过的,那么枚举讨论新的同款衣服需不需要额外穿一次。第二种是根据刷区间设定(HDU2476),如果现在出现了一个之前出现过的的颜色,那么讨论这个颜色是否可以从之前直接刷过来。(实际上两种设定一样) 那么根据设定可以确定这样的状态转移:对于任意一件衣服,如果在此之前的区间(这个区间为i-&g...原创 2019-10-19 10:28:38 · 158 阅读 · 0 评论 -
UPC 个人训练赛1部分题题解
A 斗地主 由于数据范围不是多大,所以可以直接用搜索解决,因为这里是一个类似在二叉搜索树上求最短路的问题,故这里推荐bfs。 既然要用bfs,就需要像遍历图一样明确方向。求解这个问题需要三个人的得分情况,也就是需要讨论三个维度的方向问题,而且在遍历中需要标记数组来避免死循环,不巧的是这个数据范围(-300~300)不能让你开三维数组。但是题给了另外一个条件:a+b+c=0,所以只要求出两个人的...原创 2019-09-22 09:44:54 · 211 阅读 · 0 评论 -
UPC 个人训练赛2部分题题解
A 招待 本题是一个三进制下的模拟题。为什么判定这是三进制?是因为砝码的重量一定是3的幂次。 假如砝码的重量都是2的幂次,那么根据二进制的相关知识可以知道110=4+2+0=6,也就是6可以由一个2单位的砝码和一个4单位的砝码称量。换成三进制的的话,对于数字13,三进制表示是111,也就是1+3+9,重量为13的物体可以由1,3,9这三个重量的砝码称量。但是三进制表达式中含有2这个数字,题给的...原创 2019-09-27 13:01:10 · 210 阅读 · 0 评论 -
专题训练集-最短路
POJ2253 本题的意思是求出点1到点2之间所有路间,每条路的最大边的最小值。所以根据这个只需要对每两个点进行松弛操作,然后在松弛操作中进行最大边选取即可。 至于为什么在这里选择了floyd算法,那是因为这两个点之间存在极其多的路径可供选择,而这里需要讨论每一条路的最大边,然后综合求最小值,所以这个很明显不能用普通的最短路算法来实现。这就需要floyd里这种类似动态规划的思想来解决是比较好的...原创 2019-10-06 19:14:54 · 109 阅读 · 0 评论 -
数位DP专题
CF55D 这个题的核心要素是:某个数n被它的所有非零数位整除的同时,也是整除了所有非零数位的最小公倍数。所以在分析数位的同时需要照顾已经分析的所有非零数位的最小公倍数,和这些数位组成的这个数取余它的模。 所以dfs过程就有了三维数据:当前数位,余数,最小公倍数。然而余数和最小公倍数可能很大,在记忆化过程中较难实现,所以需要优化一下。可以发现1~9的最小公倍数为2520,如果一个数被2520整...原创 2019-10-13 20:31:29 · 216 阅读 · 0 评论