把博客园图标替换成自己的图标
把博客园图标替换成自己的图标end
上一页 1 ··· 25 26 27 28 29 30 31 32 33 ··· 45 下一页
摘要: 题面传送门 蛮好地题目。 刚开始没有想到取对数然后二分答案对于每个权值除$mid$看答案乘积是否大于$1$ 然后就被卡常了,搞了一下循环展开才勉强不开O2卡过去。 具体思路就是对模式串建出AC自动机然后在AC自动机上设$f_{i,j}$为匹配到了$i$点然后在AC自动机上第$j$个节点。 这个东西滚 阅读全文
posted @ 2021-05-14 22:05 275307894a 阅读(33) 评论(0) 推荐(0) 编辑
摘要: 题面传送门 显然有$O(nmw)$的dp但是不能过。 我们发现对于$[w/2+1,w-1]\(这一段区间内的数\)\times 2$都是一样的。这启示我们压起来。 根据整除分块原理只有$O(\sqrt w)$个不同的数。 所以就可以优化到$O(nm\sqrt w)$了。 code: #include 阅读全文
posted @ 2021-05-13 21:08 275307894a 阅读(57) 评论(0) 推荐(0) 编辑
摘要: 题面传送门 陈指导一个小时写完的东西我写了四个小时。 也算是对AC自动机和最大独立集有了更深刻的了解。 首先子串关系想到AC自动机可以做。 具体的只要把每个前缀的结尾往上跳跳到第一个其它串的结尾即可。 然后floyd传递闭包一下即可。 但是问题是如果真的暴力跳是$O(n\times \sum\lim 阅读全文
posted @ 2021-05-08 22:43 275307894a 阅读(50) 评论(0) 推荐(0) 编辑
摘要: 题面传送门 差点看成另外一道题。 因为这个是统计$[l,r]\(区间内的个数所以拆成\)[1,r]-[1,l-1]$ 然后很不好做,考虑根号分治。 如果这个询问串长度小于$\sqrt n$那么就暴力插入找答案即可,这个用分块维护答案可以做到$O(m\sqrt n)$ 对于大于$\sqrt n$的,就 阅读全文
posted @ 2021-05-06 19:42 275307894a 阅读(46) 评论(0) 推荐(0) 编辑
摘要: 题面传送门 很平凡的分块啊不知道为什么要评黑题。 首先显然要预处理块间众数。 然后就是考虑零散块怎么处理。 用一个vector将所有一样的数存下来,然后零散块左边从右到做遍历,如果碰到一个数后ans个数没有超过右边界就直接将ans++ 右边同理。 时间复杂度$O(n\sqrt n)\(,因为vect 阅读全文
posted @ 2021-05-04 20:37 275307894a 阅读(50) 评论(0) 推荐(0) 编辑
摘要: 题面传送门 看到题面的瞬间想到超级钢琴。 然后写了个类似超级钢琴的东西发现会有重复然后就不知道怎么办了。 被题解点播了一下。 就是先跑出最优解,然后看最优解前$k$个不动拿来拓展,这样每个分支不交就可以堆维护了。 时间复杂度$O(Ck^2(n+k)+ClogClogk)$ code: #includ 阅读全文
posted @ 2021-05-03 22:52 275307894a 阅读(70) 评论(0) 推荐(0) 编辑
摘要: 题面传送门 有撤销还可以离线。 就显然可以找到每个操作的左右端点。 然后写了线段树分治 这个东西之所以不能线段树分治的原因是因为他是要求顺序的。 所以直接写个高维数据结构即可。 因为不想写kdt所以写了个四分树反正数据随机 code: #include<cstdio> #include<vector 阅读全文
posted @ 2021-05-03 15:39 275307894a 阅读(58) 评论(0) 推荐(0) 编辑
摘要: 题面传送门 域值这么大显然不能把域值放到dp里去。 但是$n$很小可以开两维。 所以可以设$f_{i,j}$为$i$子树内有$j$个点被选择的最小费用。 但是这样状态表示很不明确。 所以再增添一维$0/1/2$代表没选,选了而没有成为贡献,选了成为贡献。 然后平凡转移一下即可。注意树形dp常见的$O 阅读全文
posted @ 2021-05-03 14:59 275307894a 阅读(82) 评论(0) 推荐(0) 编辑
摘要: 题面传送门 希望早日有好的spj。 看到这道题应该可以直接秒了$O(n3)$:枚举第一个串中的两个端点,然后枚举第二个串的重构循环开始的地方,两边跑lcp/lcs看能否成立。 然后你发现lcp和lcs显然可以hash+倍增$O(n2logn)$跑出来,关键是判断的地方。 设$f_{i,j}$为第一个 阅读全文
posted @ 2021-05-02 16:19 275307894a 阅读(43) 评论(0) 推荐(0) 编辑
摘要: 题面传送门 显然转化一下算贡献就是$\sum\limits_{\sum\limits_{\max(a_i,a_j)\times i\times (n-j+1)}}$ 根据拆max的套路拆成枚举大的然后正反跑两边。 那么树状数组维护一下即可。 code: #include<cstdio> #inclu 阅读全文
posted @ 2021-05-01 14:35 275307894a 阅读(30) 评论(0) 推荐(0) 编辑
摘要: 题面传送门 为什么所有题解要用$g$帮助转移啊,我觉得不用吧…… 随便画画图就可以发现这个一定是从起点向左走一段然后再向右不回头走再向左走一段。 然后前后两端都可以用字符串哈希搞掉。 然后中间dp即可。 具体转移因为不会回来走所以枚举前一行转移即可。 时间复杂度$O(nm)$ code: #incl 阅读全文
posted @ 2021-04-25 19:10 275307894a 阅读(42) 评论(0) 推荐(0) 编辑
摘要: 题面传送门 显然有一个$O(n2klogn)$的dp状态就是设$f_{i,j}$为分了$i$次,到了$j$的最小无序度,用树状数组维护一下即可。 然后把这个东西转到二维平面上看就显然有决策单调性。 但是这个转移不能直接计算所以没有办法直接决策单调性。 因为当前层不用这一层而直接用下一层,所以可以用分 阅读全文
posted @ 2021-04-24 15:27 275307894a 阅读(74) 评论(0) 推荐(0) 编辑
摘要: 题面传送门 显然有一眼$O(n^2k)$的dp:设$dp_{i,j}$为分了$i$段,分到第$j$个时的最小值。 那么可以$O(n)$暴力转移。 因为每种颜色相互独立,所以我们对每种颜色分别考虑。 如果$[i,j]$中有$x$个,$[i',j']$中有$y$个,$[i,j']$中有$z$个,那么$[ 阅读全文
posted @ 2021-04-24 08:32 275307894a 阅读(48) 评论(0) 推荐(0) 编辑
摘要: 题面传送门 其实这道题可以写得很短的。而且跑得飞快,目前没有手动编译优化第一。感觉完全没有黑题。 如果我们设$dp_{i,j}$为到了第$i$个基站,当前到了第$j$个点时候的最小价值。 那么显然我们有$dp_{i,j}=\min\limits_{dp_{i-1,k}+w(k+1,j)}$,$w(i 阅读全文
posted @ 2021-04-20 21:01 275307894a 阅读(65) 评论(0) 推荐(0) 编辑
摘要: 题面传送门 看到数颜色就可以想到要用分块。 然后把正解想出来然后复杂度算错 然后发现我们有两种方法: 第一种,将每个颜色都建成并查集然后直接查询,这个是$O(nq)$的。 第二种,将每种颜色内的暴力匹配扔到map里,然后对于每个询问查询。这个是$O(n^2logn+qlogn)$的。 然后想到将两个 阅读全文
posted @ 2021-04-18 13:34 275307894a 阅读(67) 评论(0) 推荐(0) 编辑
摘要: 题面传送门 这个轮换的东西线段树显然不好搞。 万能的分块其实是更好的选择。 这种统计个数的肯定是每个块开桶记录有几个。 那修改操作就是把每个块尾巴那个元素拿出来接到后一个块开头。然后把最后一个元素删掉放到第一个元素的位置。 不难发现这个用deque就可以很好地解决。修改是顺便维护一下桶即可。 这个问 阅读全文
posted @ 2021-04-17 21:02 275307894a 阅读(133) 评论(0) 推荐(0) 编辑
摘要: 题面传送门 首先这个是2000年的IOI所以没有什么wqs二分。 设$dp_{i,j}$为到了$i$,已经有了$j$个邮局的最小距离和。 显然有方程式$dp_{i,j}=\min_{dp_{k,j-1}+w(k+1,i)}$,其中$w(i,j)\(为在\)[i,j]$区间内村庄建立一个邮局的最小距离 阅读全文
posted @ 2021-04-17 20:52 275307894a 阅读(36) 评论(0) 推荐(0) 编辑
摘要: 题面传送门 一看到效率就感觉像是分数规划。 然后这个东西又可以二分。 所以应该是二分寻找答案。 那么怎么看$mid$是否可以呢? 看到$n$很小想到可以$O(n3)$ 首先floyd预处理出两点之间距离。 然后再$O(n2k)$暴力枚举得到两点之间最优的值。 那么二分一个答案之后把每条边边权设为$w 阅读全文
posted @ 2021-04-17 14:34 275307894a 阅读(26) 评论(0) 推荐(0) 编辑
摘要: 题面传送门 不是很理解陈指导为什么没切掉这道题。 把这个东西分成两端处理,即$[x,lca]\(与\)[lca,y]$,因为收集器中宝石种类不一样所以这个$lca$被算重了是没有关系的。 前面一个我们可以预处理出对于每一个节点它最近的后一个在什么地方,然后对于每个点找到最近的第一个然后在树上倍增即可 阅读全文
posted @ 2021-04-17 11:10 275307894a 阅读(91) 评论(0) 推荐(0) 编辑
摘要: 题面传送门 看到数据范围想到可以状压。 然后以为是$b$的分配方式看着题目想了好久始终没有想到怎么把$O(m)$的枚举转移去掉。 设$f_{i,j,k}$表示当前到了第$i$个队伍,集合为$j$,$b$总量为$k$ 发现这样子其实还是要枚举转移。 考虑怎么有最优分配方案,显然每个都给最少是最优的。设 阅读全文
posted @ 2021-04-17 09:36 275307894a 阅读(100) 评论(0) 推荐(0) 编辑
摘要: 题面传送门 居然省选出这么简单的题目。 首先显然这个东西有单调性所以可以二分。 然后考虑这个东西怎么验证。 首先因为$a$升序所以可以直接在$a$上面找范围。 考虑确定左端点$l$则右端点$r$很好确定。 我们无非要确定两件事情:翻的数量有没有超过$m$,翻完之后有没有出现不在范围内的情况。 前面那 阅读全文
posted @ 2021-04-16 21:05 275307894a 阅读(136) 评论(1) 推荐(0) 编辑
摘要: 题面传送门 设$dp_{i,j}$为到了$i$个人,走了$k$条船的最小沮丧度之和。 然后就可以发现这个是$O(n^2)$的过不去。 其实把图画出来就可以发现满足四边形不等式,旁边要多两块矩形。 所以可以直接上决策单调性优化了。 时间复杂度$O(nklogn)$有点卡常。 code: #includ 阅读全文
posted @ 2021-04-15 21:02 275307894a 阅读(62) 评论(0) 推荐(0) 编辑
摘要: 题面传送门 先把最小生成树跑出来。 对于一条非树边显然就是最小生成树上面倍增一下就可以找到答案。 但是对于最小生成树树边很难做。要枚举所有非树边。 换个思路,找到所有非树边然后在最小生成树上zyq倍增即可。 时间复杂度$O((n+m)logn)$,树剖两个log可能过不去。 code: #inclu 阅读全文
posted @ 2021-04-15 20:10 275307894a 阅读(63) 评论(0) 推荐(0) 编辑
摘要: 题面传送门 首先如果$m\leq n$那么一直用最大的食材搞就可以了,显然最大的食材一定大于$k$ 然后$m=n-1$怎么搞 把$d$排序,然后显然可以用最小的和最大的来凑出$k$,显然成立。 这样子每次$n$减一,$m$减一直到$n=2$,$m=1$就可以随便构造了。 但是数据范围还有个$m=n- 阅读全文
posted @ 2021-04-13 20:34 275307894a 阅读(54) 评论(0) 推荐(0) 编辑
摘要: 2020年2月27日: luogu P3870 [TJOI2009]开关 线段树模板 CodeForces 1313C1 结论+模拟 CodeForces 1313A 结论 luogu P2306 被yyh虐的mzc 思维+单调队列/二进制优化多重背包 2020年2月28日: luogu P3197 阅读全文
posted @ 2021-04-10 22:29 275307894a 阅读(1684) 评论(6) 推荐(0) 编辑
上一页 1 ··· 25 26 27 28 29 30 31 32 33 ··· 45 下一页
浏览器标题切换
浏览器标题切换end