摘要:
题意:给定 nnn 个字符串 sis_isi,每个字符串有权值 viv_ivi。qqq 次询问,每次给定一个字符串 SSS 和一个数 kkk。定义 cnticnt_icnti 为 sis_isi 在 SSS 中出现次数。求 cnti×vicnt_i \times v_icnti×vi 的 阅读全文
摘要:
唐题。 考虑瞎状压,fi,Sf_{i,S}fi,S 表示末尾的字符串是 sis_isi,目前 SSS 这个二进制状态为 111 的位置已经是子串了。转移直接枚举上一个位置哈希。注意要把本身就在另一个字符串的子串中的删掉并去重。 #include <bits/stdc++.h> using nam 阅读全文
摘要:
考虑反向建图,然后设 fuf_ufu 表示 uuu 点的答案,fn=+∞f_n = + \inftyfn=+∞。然后 Dijkstra 维护,每次拓展到一个新的点,相当于考虑一些同余相关的问题。容易发现这个东西可以 O(1)O(1)O(1) 求出,就做完了。 #include <bits/std 阅读全文
摘要:
注意到对方的操作与我们选择的无关。故可以直接 DP 求出对方最终点数为 iii 的概率。这部分可以前缀和优化。 现在考虑我们怎么做能最优化概率。逆着 DP,fif_ifi 表示假如初始点数为 iii 的最优概率。f0f_0f0 即为所求。你发现转移分两部分,一部分是,我在 iii 不动,另一部分 阅读全文
摘要:
题意:P2934 [USACO09JAN] Safe Travel G。 简要题意:nnn 个点 mmm 条边的简单无向连通图,对于 i∈[2,n]i \in [2,n]i∈[2,n],求出如果删掉 111 到 iii 最短路的最后一条边,新的最短路长度。保证 111 到任意一个点最短路唯一。 解法 阅读全文
摘要:
我会无脑做法,哈哈! 考虑没有删除操作怎么做?直接每个点维护一个标记,下传直接取 max\maxmax 就好。 要删除,直接考虑线段树分治,删除变撤销。然而取 max\maxmax 貌似不好直接撤销。考虑标记永久化,这样就不需要下传。单次区间修改影响 O(logn)O(\log n)O(log 阅读全文
摘要:
题意:P8264 [Ynoi Easy Round 2020] TEST_100。 简要题意:nnn 个数的序列 a1,a2,⋯ ,ana_1,a_2,\cdots,a_na1,a2,⋯,an,qqq 次询问,每次给定 l,r,vl,r,vl,r,v,求依次访问 l∼rl \sim rl∼r 阅读全文
摘要:
提供一个无脑做法。 考虑操作的本质是让区间最大值替代整个区间,于是我们要维护序列删掉一个区间,还要维护单点插入。这玩意可以用平衡树做,但是难以拓展到每个点求答案上。 不妨这样:对于每次操作 [l,r][l,r][l,r],我们都找到 [l,r][l,r][l,r] 对应的原序列的区间 [l′,r′] 阅读全文