11 2023 档案
[ABC329E]Stamp
摘要:为了方便,我们记 为印章。 不可能出现上图的情况(或者说无效),区间都必须是左右端点严格递增的。 发现新增一个区间,无非就是放在上面/下面两种情况。 考虑用 表示前 个字母全部匹配,且第 个字母恰好在最右侧的模式串的第 个位置是
「网络流 24 题」搭配飞行员
摘要:「网络流 24 题」搭配飞行员 考虑其实就是二分图最大匹配,建图可以按照如下的形式: 这是样例,所有边权均为 。 如上图方式建模即可。 code 求方案就判断一下中间的边是否用掉(原网络图)
empty
摘要:
「网络流 24 题」圆桌聚餐
摘要:「网络流 24 题」圆桌聚餐 上一题的简单改变,我们改一下: 中间的边权值为 ,每个左边的点每往右流 ,就有人派到那张桌子,这样也不会出现同组内多个人去同一张桌子的情况(因为中间边权为 )。 左边源点边为人数,右边汇点边为桌子容量。 code 类似题:试题库
P5482 [JLOI2011] 不等式组
摘要:P5482 [JLOI2011] 不等式组 这道题比板子还是难不少,因为有大量的分类讨论。 看到题就可以考虑平衡树了。 ,根据不等式乘除法的变号规则分类。 ,不等号方向不变, 。 ,不等号方向
稳定的牛分配
摘要:稳定的牛分配 考虑先二分答案。 然后我们可以枚举区间,比如答案是 3,那么区间可以是 [1,3],[2,4] 这样的。对于每个区间,建立区间对应的边跑网络流,所有情况下如果有一种情况是所有牛恰好都匹配成功则 check 成功。 code
数字梯形
摘要:数字梯形 考虑网络流拆点。 对于一个点不能多次到达的限制,可以将其拆为两个点,中间容量为 ,权值为点的权值。然后由于点不重合那么边一定不重合,除了起点连下来的边容量为 ,其他边容量只要大于 就可以了。 第二个限制,不需要拆点,将费用放到边上,然后注意虚拟源点容量为 \
旅程
摘要:旅程 考虑删边比较难做,于是倒过来加边。 首先先做一遍 Floyd,然后每次加一条边,用这一条来更新,类似于 Bellman-ford,如果更新 ,用边 ,则可写作 ,也可以先更新所有点
餐巾计划问题
摘要:餐巾计划问题 先拆点,将每天拆成两个点,一个表示用完的旧餐巾①,一个表示需要的新餐巾②。 考虑几种边: 购买边,从起点往②点连 。 快洗边,从前 天往②点连 。 慢洗边,从前 天往②点连 。 容量限制边 从②点往终点
1
摘要:[](http://image.qingtengbc.com/2023/08/18/f99b5e833882d.png)
模拟赛20231003 T1
摘要:你有一个二进制串长度为N,串内包含0 和1 两个数字。现在用一种特殊的算法对该串进 行加密,加密方式是给定一个整数K 满足1 ≤ K ≤ N。对于该串内每个长度为K 的区间,计 算出该区间内数字的和,放进一个新序列里。新序列一共有N −K + 1 项,第i 项代表原序列 中第i 项到第i + K −
20231003 T2 32分
摘要:Alice 正在玩一个翻转串的游戏。这个游戏有一个S 串一个T 串。两个串都是01 串。Alice 每次操作可以把S 串的一个子串翻转。例如”101100”, 她选择”011” 翻转后得到”111000”。 Alice 希望进行最少次的操作,使得操作后的S 串内不包含T 作为S 的子串,你能否帮 助
sol
摘要:01串 对于相邻的两个段和 和 两段之间移动时的差别既删除了i号元素,添加了i+K号元素。如果 那么说明i号元素是1,i+K号元素是0。(删除1添加0),反之如果 ,那么i号元素是0,i+K号元素
P9744 「KDOI-06-S」消除序列
摘要:P9744 「KDOI-06-S」消除序列 我们可以很容易发现操作 1 只可能使用一次。 先考虑序列固定的情况下的做法。 我们设 表示 用操作 1, 不用的最小值。( 可以取 ,表示不用操作 1) 对于前半部分,先
P1972 [SDOI2009] HH的项链
摘要:P1972 [SDOI2009] HH的项链 我们考虑将所有询问按照右端点归类。 然后从左往右扫描每个位置,如果前面有位置和它重复,就把前面的位置删掉(这样做是对的,因为右端点只可能在之后了,那么要访问到前面的位置,就必须要到达这个位置,相当于把重复的贡献减掉)。 初始时假设所有位置都不重复,都是
flandre
摘要:给定一个长度为 数列 ,你可以按照一定顺序选择它们中的一个或多个。 初始贡献为你选择的数之和。 设新的数列是长度为 的数列 。对于选择的每个数 ,会造成 的贡献,\(get(x,y
P1486 [NOI2004] 郁闷的出纳员
摘要:P1486 [NOI2004] 郁闷的出纳员 有两种思路,均使用fhq-treap实现 维护一个变量delta表示全局偏移量,对于新插入的数减去偏移量。使用fhq-treap,可以分裂出<mid的部分,直接丢掉。 直接用fhq-treap维护一个类似于线段树的懒标记,每次放在根上即可。 方法1 #i
日记和编辑器
摘要:日记和编辑器 个操作,5类: 在某个位置后插入一个字符串。 区间删除。 区间修改为一个字符串(长度可以不等)。 查询一段区间某种字符的出现次数 查询一段区间匹配模式串 的次数( 固定) \(1\le n\le 10^5,|s|\le 10^5,\sum|s|\le
sakuya
摘要:sakuya 我们考虑每对距离 (两个方向都算)在所有方案中的出现次数。 考虑捆绑法,共 ,又因为 ,所以出现次数就是 。 问题就变成了求解出关键点对两两之间的距离。 我们考虑每条边的贡献,是边权乘以子树内的关键点数
A 魔力屏障
摘要:A 魔力屏障 我们考虑设 表示击破区间 后,剩余魔力 ,最少需要多少能量。 初始状态:对于所有区间为 ,击破后剩余 ,最少需要 。(如果击破能量超过 ,可以发现不是最
密文板
摘要:A 密文板 我们考虑两个栈,一个维护左括号,一个维护问号; 如果来了一个右括号,优先使用左括号,然后使用问号; 多余的问号,与左括号匹配; 最后再多余,问号自己互相匹配。 #include<iostream> #include<cstring> using namespace std; #defin
A 马
摘要:A 马 状态 表示骑 次大圈、 次小圈、 次过河至少需要的马数。 发现过河一定是最先进行的,每次考虑最后一匹马的转移,只要是对应的三元组执行完后不会累倒就行。 可行的三元组不多,而且 是最坏的情
B 可爱捏
摘要:B 可爱捏 考虑完全立方数的构成一定是幂 互补的两个数,如 ,那么暴力的想法就是暴力分解,然后用 map 记录互补的数,但是这样因数分解复杂度太高了。 考虑优化,我们考虑分解出 的数,然后如果超过了
C 诗
摘要:C 诗 我们考虑哈希。 对于每个询问,来了就哈希,然后排序,这样对于之后每个同是这个长度的串,就可以直接查询。 由于不同的串长最多是 ,大概是 的级别,每组瓶颈都是预处理,最多预处理 次,加排序,那么复杂度就是 \(O(n
P9745 「KDOI-06-S」树上异或
摘要:P9745 「KDOI-06-S」树上异或 参考:https://www.luogu.com.cn/blog/710100/p9745-kdoi-06-s-shu-shang-yi-huo-jian-yao-ti-xie 其中,转移中一部分考虑的是断边,那么两部分分离,乘法原理;如果连边,需要异或为
扫描线
摘要:AcWing 247. 亚特兰蒂斯 题意:给定若干个矩形(长宽均平行于坐标轴),求它们的面积并(矩形的顶点坐标可以是实数)。 本题是扫描线算法的模板题。 扫描线,顾名思义,就是按照一条线扫过去,对于本题 扫描线 - OI Wiki (oi-wiki.org) 如上图,这就是扫描线的过程。 发现按照线
[CSP-J2023]旅游巴士
摘要:# [P9751 [CSP-J 2023] 旅游巴士](https://www.luogu.com.cn/problem/P9751) 本题主要的难点在于到达和离开景区的时间都必须是 ** 的非负整数倍**以及每条道路均设置了一个 “开放时间” 。 对于第一个限制,只需要拆点,将每个