上一页 1 ··· 6 7 8 9 10 11 12 13 14 ··· 83 下一页
摘要: vjudge传送 一句话题意:给一棵树,有$m$次操作,每一次让你从节点$x$到节点$y$的路径中选出一个点,使这个点的权值异或$z$最大。(数据范围$10^5$) 如果是一个序列,那么就是01-Trie的经典应用。 现在是一棵树,就要用到可持久化Trie啦。 可持久化Trie这东西和可持久化线段树 阅读全文
posted @ 2021-01-02 15:25 mrclr 阅读(86) 评论(0) 推荐(0) 编辑
摘要: 传送 这题乍一看觉得无从下手,但只不过是把两个知识点捏到一块罢了。 判断多个串是否为一个串的子串,首先想到AC自动机:把$K$个模板串建成AC自动机,然后在上面dp(记忆化搜索)。 AC自动机上的每一个节点到根的路径都代表一个前缀,所以令$dp[i][j]$表示模板串匹配到节点$i$,文本串匹配到长 阅读全文
posted @ 2021-01-01 15:07 mrclr 阅读(77) 评论(0) 推荐(0) 编辑
摘要: 传送门 这主要想说一下AC自动机加上拓扑排序。 当我们建完AC自动机后,查询的时候会因为跳好多次fail指针而超时,所以需要优化。 为了说话方便,假设我们已经建好了fail树。 在匹配的时候,如果匹配到节点$u$,那么$u$的所有祖先代表的前缀一定能匹配上(fail指针的性质),暴力的做法是把$u$ 阅读全文
posted @ 2021-01-01 13:52 mrclr 阅读(67) 评论(0) 推荐(0) 编辑
摘要: 打ACM的时候又碰到了kmp,就翻了翻以前的博客。 怎么说呢,感觉以前写的好烂啊,全是一些感性的理解,没有任何严格的证明,而且代码不是很简洁。 所以这里推荐还是看书吧,比如李煜东的《算法竞赛进阶指南》就讲的很好,而且代码写的很精炼,我觉得如果我写这篇文章的话,也只不过是把书上的话复述一遍,所以这里我 阅读全文
posted @ 2020-12-31 14:20 mrclr 阅读(79) 评论(0) 推荐(0) 编辑
摘要: cf传送门 vjudge传送门 首先,人人都能想到一个很显然的dp做法:令$dp[i][j]$表示前$i$个数分成$j$段的最大划分价值,于是有$dp[i][j] = max {dp[i-1][j], dp[i-1][j-1] } + a[i]*j$. 但这样$O(n2)$妥妥的不能优化,没了。 然 阅读全文
posted @ 2020-12-26 19:47 mrclr 阅读(50) 评论(0) 推荐(0) 编辑
摘要: hdu传送门 vjudge传送门 好久没有做博弈论的题了,所以比赛的时候遇到这题基本上就是没思路。 这题跟nim游戏以及sg函数等博弈论知识没什么关系,但是用到了博弈论的一个经典思路:镜像操作。 当玩家一拿完后,必然断环成链,而如果玩家二再把这条链分成完全相同的两部分,那么只要完全仿照玩家一的做法, 阅读全文
posted @ 2020-12-26 19:37 mrclr 阅读(49) 评论(0) 推荐(0) 编辑
摘要: 题面传送门 首先这场比赛是真的爽,33分钟写完了三道题(虽然剩下的一个半点一道没搞出来),排名140多,涨了133rating. 好了回归正题,这题确实挺难的(虽然tourist8分钟切掉了),因为他有两个思维阶段。 我们记选的$k$个杯子的集合为$S$,总容量为$A_S$,含有的水为$B_S$。那 阅读全文
posted @ 2020-12-20 16:28 mrclr 阅读(348) 评论(2) 推荐(0) 编辑
摘要: 洛谷传送门 这题的主要算法我确实想不出来……不愧是IOI的题。 首先假如把一轮游戏的$a_i$从小到大排序,那么奖励数额$x_i=\sum_{2}+1} ^ a_i - \sum _ ^ {\frac{2}}a_i$. 然后我们要求的就是$\sum_ ^ x_i$的最大值。 正解确实很难想,先想只有 阅读全文
posted @ 2020-12-11 15:30 mrclr 阅读(193) 评论(0) 推荐(0) 编辑
摘要: 传送门 IOI的题思维难度确实不小,但是很多题的代码却没有那么难写,也希望这是以后OI以及ACM的出题趋势吧。 首先两个点之间的路径条数不可能等于3,因为如果两点间有3条不同的路径,那么这个图就一定就会有4条路径,见下图: 这里能看出1和4之间有3条路径,但2和3之间就有2-1-3,2-1-4-3, 阅读全文
posted @ 2020-12-11 14:40 mrclr 阅读(209) 评论(0) 推荐(0) 编辑
摘要: 这里记录一下vector支持的操作,最近看到了好多花里胡哨的。 1.v.push_back(x):在末尾添加一个元素x. 2.v.size():以无符号形式返回vector的大小 3.v.clear():清空vector. 4.v.pop_back():删除最后一个元素。 5.v.emplace_b 阅读全文
posted @ 2020-12-07 21:54 mrclr 阅读(141) 评论(0) 推荐(0) 编辑
上一页 1 ··· 6 7 8 9 10 11 12 13 14 ··· 83 下一页