12 2021 档案
摘要:结论:若有个洞,至多只有种不同的最终状态 考虑相邻两次操作,注意到除非两者(对应的洞在该时刻)相邻且方向正好相对,否则交换不影响最终状态 这种情况下,不妨将其中后操作的洞方向翻转(这也不影响),进而也即可交换 通过上述方式将操作按洞从左到右排序,那么一个洞向左会覆盖(左侧)所有段、向
阅读全文
摘要:问题即是要对一个栈支持:1.加入一个元素;2.删除最早加入的元素(各有次) 做法1(题解中的算法2) 将栈中的元素标记为01,并按如下方式维护: 1.对于加入操作,直接将其加入并标记为1 2.对于删除操作,对其分类讨论—— (1)若栈顶标记为0,直接弹出即可 (2)若栈顶标记为1,不断弹出栈顶
阅读全文
摘要:显然两维是独立的,不妨考虑其中一维的答案 将其离散,枚举交包含的某一段(若不存在即交为空),进而即可确定所有段的方向,用线段树维护取到最大值的位置数即可 时间复杂度为,可以通过 1 #include<bits/stdc++.h> 2 using namespace std;
阅读全文
摘要:为了方便,以下默认字符集为 将操作逆向,即将形如ARC的子串变为任意字符,求在步内能得到的数量 考虑给定,如何判定能否被在步内得到—— 将任意字符用?表示,称两个字符串匹配即将?替换后两者相同,那么操作即将能与ARC匹配的子串变为???
阅读全文
摘要:考虑时的问题(即AGC017D),可以参考这里(与后面有关系,建议阅读) 而对于所有,仍以1为根建树,并将整棵树分为若干个独立的问题—— 1.对于内部不存在固定点的极大子树,显然其再加上根父亲即是一个独立的问题,结合上题结论,这个问题的sg值为这棵子树的sg值+1 2.对于去掉上述子
阅读全文
摘要:将其1为根建树,操作显然即去掉一棵子树(非本身) 考虑sg函数,定义为有根树的sg值,则有以下结论—— 结论:令为的根节点新增一个父亲得到的树,则 假设去掉任意一棵子树(非本身)后会得到$T_{1},T_{2},...,T_{k
阅读全文
摘要:对的操作即在中插入一对括号,逆过程也即删除一对括号 换言之,能被得到当且仅当通过删除中若干对括号可以得到,问题也即求 结论:通过删除中若干个合法子串(指合法括号序列)可以得到 考虑原来得到的过程,对于其中每一对
阅读全文