上一页 1 2 3 4 5 6 7 8 ··· 11 下一页
摘要: 题目链接: "戳我" Emmm......hash怎么做啊不会啊 这里是SA后缀数组版本的 就是先两两做差分,作为要处理后缀的数组。普通地求出来h数组之后,我们二分这个答案,然后判定是否合法就行了。是否合法即$min(sa[j])+h[i] include include include inclu 阅读全文
posted @ 2019-04-20 22:43 风浔凌 阅读(231) 评论(0) 推荐(0) 编辑
摘要: 题目链接: "戳我" 我们知道后缀数组的h数组记录的是后缀i和后缀i 1的最长公共前缀长度,后缀的前缀其实就是子串。 因为是可以重复出现的子串,所以我们只要计算哪些h数组的长度大于等于x即可。这一步操作我们可以使用二分实现qwq 为什么可以二分呢?因为我们知道排名相邻越近,后缀相似度越高。然后因为我 阅读全文
posted @ 2019-04-20 21:12 风浔凌 阅读(141) 评论(0) 推荐(0) 编辑
摘要: 题目连接: "戳我" 题目大意:求n个字符串的最长公共子串。 它的简化版—— "这里" 当然我们可以用SA写qwq,也可以用广义SAM写qwq 这里介绍纯SAM的写法。。。就是对其中一个建立后缀自动机,然后剩下的N 1个往上面匹配。 设$sum[i]$表示到以节点i为根的子树中,最长能够匹配到的最长 阅读全文
posted @ 2019-04-18 21:48 风浔凌 阅读(241) 评论(0) 推荐(0) 编辑
摘要: 题目链接: "戳我" 题目大意:给定一个字符串,它的长度n include include include include define MAXN 2500100 using namespace std; int n,last=1,tot=1; int siz[MAXN],c[MAXN],a[MAX 阅读全文
posted @ 2019-04-18 20:05 风浔凌 阅读(95) 评论(0) 推荐(0) 编辑
摘要: 持续更新qwq KMP 其实是MP啦qwq 就是先自己匹配自己得到状态图,然后再在上面进行模式串的匹配。 nxt数组返回的是以该节点结尾的,最长的,在前面出现过的,不相交的,字符串的最靠右的,末位位置。 举个例子:对于字符串aabaabaabaab来说,它的nxt数组是这个样子的—— nxt[0]= 阅读全文
posted @ 2019-04-18 17:33 风浔凌 阅读(454) 评论(0) 推荐(0) 编辑
摘要: 中国剩余定理CRT 中国剩余定理是要求我们解决这样的一类问题: $$\begin{cases}x\equiv a_1\pmod {b_1} \\x\equiv a_2 \pmod{b_2}\\...\\x\equiv a_n\pmod{b_n} \end{cases}$$ 其中$b_1,b_2,.. 阅读全文
posted @ 2019-04-16 17:18 风浔凌 阅读(383) 评论(0) 推荐(0) 编辑
摘要: Chess Queen 组合数 例题6 Glenbow Museum 村民排队(uva11174) 村子里现在有n(1 阅读全文
posted @ 2019-04-14 10:45 风浔凌 阅读(225) 评论(0) 推荐(0) 编辑
摘要: 题目链接: "戳我" 朴素DP:$dp[i][j]=dp[i 1][k]+cost[k+1][j]$ 其中dp[i][j]表示炸第i次的时候,处理到前j个的最小值是多少。cost[i][j]表示的是i,j联通的情况下的贡献。 之后可以套用四边形不等式优化,然后将复杂度降低到$O(n^2)$ 注意hd 阅读全文
posted @ 2019-04-13 19:00 风浔凌 阅读(279) 评论(0) 推荐(0) 编辑
摘要: 持续更新!! DP的难点主要分为两类,一类以状态设计为难点,一类以转移的优化为难点。 DP的类型 序列DP 【例题】BZOJ2298 problem a 数位DP 常用来统计或者查找一个区间满足条件的数,然后按数位顺序DO,一般需要仔细分情况讨论,常见处理如把区间拆为$[1,l),[1,r]$,记忆 阅读全文
posted @ 2019-04-13 18:56 风浔凌 阅读(431) 评论(0) 推荐(0) 编辑
摘要: ~~可是我为什么要专门开一发写这个呢......~~ 1.1 思维的体操 例题1 The Dragon of Loowater 贪心 例题6 Image Is Everything 例题7 Even Parity 枚举状态的化简 虽然我们不能枚举所有可能的情况,但是我们可以找到依赖关系,通过已知条件 阅读全文
posted @ 2019-04-10 08:11 风浔凌 阅读(406) 评论(5) 推荐(0) 编辑
摘要: 题目链接: "戳我" 其实和超级钢琴那个题思路挺像的,就是我们弄一个二元组,一个pos,一个sum。 超级钢琴那个题的主席树思路大家可以借鉴一下,这里也就是换成了可持久化01trie。 求一下前缀异或和,然后在它pos前面的01trie里面查询第k大即可。 代码如下: 阅读全文
posted @ 2019-04-09 10:48 风浔凌 阅读(141) 评论(0) 推荐(0) 编辑
摘要: 题目连接: "戳我" 我们读完题之后简单演算一下,会发现一个贪心——就是每个结点的子链上面一一向比自己大的配对即可。 这样的话我们可以对于每个节点都开一个大根堆,然后一一合并。 但是时间复杂度是过不去的。所以我们考虑启发式合并。 代码如下: include include include inclu 阅读全文
posted @ 2019-04-09 10:42 风浔凌 阅读(280) 评论(0) 推荐(0) 编辑
摘要: 题目链接: "戳我" RMQ版本 就是我们考虑记录一个三元组qwq,一个是pos,一个是l,一个是r。 我们可以用ST表来查询固定左端点,右端点在一段区间内的最大值所在的位置。 然后我们使用优先队列,不断累加最大值,然后弹出,求它的区间的子区间内的最大值。 代码如下: 阅读全文
posted @ 2019-04-09 10:39 风浔凌 阅读(115) 评论(0) 推荐(0) 编辑
摘要: 题目链接: "戳我" include include include include include define MAXN 100010 using namespace std; int n,m; int a[MAXNt[y].val) swap(x,y); t[x].ch[1]=merge(t[ 阅读全文
posted @ 2019-04-03 18:11 风浔凌 阅读(102) 评论(0) 推荐(0) 编辑
摘要: 题目链接: "戳我" 就是二分一个数,之后记录一个前缀max,然后和当前数做差再/2即可。(因为我们要使得原来的序列变成不下降序列,所以当然是要控制一个上限,以达到后面较小数能以尽可能小的代价增加) 代码如下: 阅读全文
posted @ 2019-03-31 11:35 风浔凌 阅读(103) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2019-03-29 14:30 风浔凌 阅读(8) 评论(0) 推荐(0) 编辑
摘要: Day 1 在机房呆了一天,大概看了看原先写过的题,有点颓。 下午的时候和大家一起打扫了一下机房。 走的时候,看着空无一字的黑板,风吹起的棕黄色窗帘,远方的蓝色天空,有一种很浓厚的哀伤。 时间过得真快啊,转眼就是省选了呢。 许是要退役了吧? 许是要退役了吧。 Day 0 明天就是省选了,看到空间里大 阅读全文
posted @ 2019-03-28 14:39 风浔凌 阅读(1160) 评论(13) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2019-03-28 14:34 风浔凌 阅读(6) 评论(0) 推荐(0) 编辑
摘要: 题目链接: "戳我" 代码不难写,我在这里就口胡一下解法好了。。。。 首先我们考虑如何求出一棵树上两两点之间的距离呢?由于树,我们可以转化为求边的贡献。那么从这一条边断成两半,一边是它连接的节点的子树,一边是剩余的节点,它对总值的贡献就是$siz[i] (n siz[i])$了。 假设当前处理到了节 阅读全文
posted @ 2019-03-28 00:09 风浔凌 阅读(89) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2019-03-27 12:51 风浔凌 阅读(10) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2019-03-26 15:47 风浔凌 阅读(13) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2019-03-25 12:35 风浔凌 阅读(14) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2019-03-24 17:04 风浔凌 阅读(12) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2019-03-22 11:50 风浔凌 阅读(10) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2019-03-21 12:47 风浔凌 阅读(9) 评论(0) 推荐(0) 编辑
摘要: 题目链接: "戳我" "推荐题解" ~~根据博弈论的基础知识,暴力搜索还是能写70分的qwq~~ 蒟蒻写个暴力都写不好,别人能拿75,我就不知道这5分到底是怎么丢的了qwqwq 先放上我的70分代码: cpp include include include include include inclu 阅读全文
posted @ 2019-03-20 22:12 风浔凌 阅读(158) 评论(0) 推荐(0) 编辑
摘要: 题目链接: "戳我" 用bitset优化一下floyd。。。。 如果to[i][j]==true,那么to[j][k]==1也可以转化成to[i][k]==1。 代码如下: cpp include include include include include include using names 阅读全文
posted @ 2019-03-20 15:31 风浔凌 阅读(138) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2019-03-20 14:10 风浔凌 阅读(14) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2019-03-19 22:50 风浔凌 阅读(8) 评论(0) 推荐(0) 编辑
摘要: 题目链接: "戳我" ~~菜得不行了,直到今天才刚开始学2 SAT。。。。~~ 2 SAT的模板,因为是求最小字典序,所以只能用上限为$O(nm)$的最暴力的方法来做。。。 cpp include include include include include define MAXN 200010 阅读全文
posted @ 2019-03-19 17:03 风浔凌 阅读(95) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2019-03-18 20:22 风浔凌 阅读(11) 评论(0) 推荐(0) 编辑
摘要: 题目链接: "戳我" DP方程:$dp[i]=max(dp[i],dp[j]+a (sum[i] sum[j])^2+b (sum[i] sum[j])+c)$ ~~暴力还是可以过一些点的(不止20pts),甚至有人说他暴力水过去了。。。~~ 我们现在考虑正解,正解还是斜率优化。维护一个上凸包qwq 阅读全文
posted @ 2019-03-17 22:34 风浔凌 阅读(104) 评论(0) 推荐(0) 编辑
摘要: 题目链接: "戳我" 很明显的转移方程—— 设$dp[i]$表示放到玩具i所需要的最小代价,那么$dp[i]=min(dp[i],dp[j]+(i j+sum[i] sum[j] l)^2)$ 来个暴力~~开O2我又骗到了70分。。。~~ 阅读全文
posted @ 2019-03-17 21:14 风浔凌 阅读(95) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2019-03-17 11:43 风浔凌 阅读(14) 评论(0) 推荐(0) 编辑
摘要: 题目链接: "戳我" 对于一个点x来说,它的最终概率$p[x]$是$\sum p[v]/du[v]$。显然这个递推是搞不了了,所以我们考虑列方程。 就是设$f[i][j]$表示点j对点i的贡献概率,然后列出n个方程来高斯消元。初始时点1概率为1.(方程的解的意义?就相当于是刚开始是静止态,经过无数轮 阅读全文
posted @ 2019-03-17 00:00 风浔凌 阅读(98) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2019-03-16 13:24 风浔凌 阅读(10) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2019-03-14 16:47 风浔凌 阅读(7) 评论(0) 推荐(0) 编辑
摘要: 题目链接: "戳我" 分层图最短路问题。 我们设$dp[i][k]$表示节点为i,现在还有k条边可以走的状态。然后跑一个最短路就行了。因为是不定项更新,所以考虑spfa。 注意到了加油站是 强制消费 。然后分向上下左右四个方向走和原地建加油站五种情况来讨论。 注意最后更新答案的时候k==0不要忘了考 阅读全文
posted @ 2019-03-13 22:28 风浔凌 阅读(160) 评论(0) 推荐(0) 编辑
摘要: 题目链接: "戳我" 就是普通的最大费用最大流问题,比较特殊的就是边只能取一次,怎么处理? 其实也很简单,就连一个流量为1,费用为收益的相反数的边,再连一个流量inf,费用为0的边即可。 代码如下: cpp include include include include include includ 阅读全文
posted @ 2019-03-13 19:32 风浔凌 阅读(195) 评论(0) 推荐(0) 编辑
摘要: 题目链接: "戳我" 拆点。第一种情况流量为1,第二种情况同一个点之间连inf,第三种情况除了第一行连1,其他都inf。 做完了。注意空间还是要开够,而且数值还有负数。 跑最大费用最大流即可。 代码如下: cpp include include include include include inc 阅读全文
posted @ 2019-03-13 18:19 风浔凌 阅读(133) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 ··· 11 下一页