ZROI 19.08.09模拟赛
写在前面:为了保护正睿题目版权,这里不放题面,只写题解。
- A
\(70pts:\)
维护一个栈,从一侧向另一侧扫描,如果新加入的元素与当前栈顶相同,则出栈,否则进栈。显然一个子串是括号序列,当且仅当栈为空。
枚举起点,暴力模拟即可。复杂度\(O(n^2)\)。
\(100pts:\)
对于一个右端点,考虑哪些左端点可以和它匹配。
发现所有合法的左端点,两者栈的内容都是相等的,可以Hash判断。
实际上考虑每次加入字符时,只会在末尾变动一次,可以用trie树维护。复杂度\(O(\sigma n)\)。
- B
\(20pts:\)
随便爆搜即可。
\(40pts:\)
考虑状压,设\(f_{state}\)为选了\(state\)的建筑公司后,最大的花费。
每次转移时枚举最后选的建筑公司\(i\),现在需要求\(e_i\)。
直接算很难算,考虑容斥。
发现有一些点集,它们之间的边已经被之前的公司连过了。
枚举之前选的建筑公司的每个子集\(state'\),被它影响的点是与\(i\)的点集的交集,容斥系数是\((-1)^{|state'|}\)。
用bitset维护点集的交集,复杂度\(O(\frac{3^m n}{w})\)。
\(70pts:\)
发现本质不同的交集只有\(2^m\)个,预处理交集大小,容斥时可以直接算。复杂度\(O(\frac{2^m n}{w}+3^m)\)。
或者对于每个点,考虑它在哪些点集里出现了。对它未出现的点集的每个子集,将它的权值\(-1\),预处理复杂度可以降到\(3^m\)。
\(100pts:\)
高维前缀和:设有定义在集合上的函数\(f(S)\),现在要求\(g(T)=\sum_{S\subseteq T} f(S)\)。直接求是\(O(3^n)\)的,然而通过一些玄妙的手段,可以将它的复杂度降为\(O(2^n\cdot n)\)。
对预处理和容斥分别使用高维前缀和即可。
- C
\(100pts:\)
发现一个排列就是若干个环组成的置换,目标是把环的总数变为\(n\)。
考虑交换两个元素后环会如何变化。
发现如果交换同一个环的元素,环会被拆成两份。否则两个环会因此合并。
因此最小化操作次数等价于最小化合并环的次数。
考虑什么时候会合并环。对于一个环,如果内部有多于一种颜色(称作异色环),可以从每次交换颜色断点处的两个元素,形成一个新的自环。因此一个异色环可以直接拆成自环,不需要合并。
否则,环内任意两个元素都无法交换,则必须将其与包含其他颜色的环合并。
考虑至少需要合并多少次。发现一次合并最优可以将两个颜色不同的同色环合并成异色环。在所有同色环颜色相同时,则只能将一个同色环与某个异色环合并。
因此每次将出现次数最多的两种颜色的同色环合并是最优的,用堆维护即可。
一万个特判,一万个边界。辣鸡swk赛场上没调出来,成功爆零了。
这题太难写了所以放一下代码。戳这里qwq
对于消异色环,另外一种比较简单的写法是,钦点一种颜色,第一次消去这个颜色所有边,只留一条。第二次用这条边把整个环都消掉即可。
ZROI 19.08.09模拟赛的更多相关文章
- ZROI 19.08.07模拟赛
传送门 写在前面:为了保护正睿题目版权,这里不放题面,只写题解. "正睿从来没有保证,模拟赛的题目必须原创." "文案不是我写的,有问题找喵老师去."--蔡老师 ...
- ZROI 19.08.06模拟赛
传送门 写在前面:为了保护正睿题目版权,这里不放题面,只写题解. 今天正睿又倒闭了,从删库到跑路. 天祺鸽鸽txdy! A "不要像个小学生一样一分钟就上来问东西."--蔡老板 虽 ...
- ZROI 19.08.12模拟赛
传送门 写在前面:为了保护正睿题目版权,这里不放题面,只写题解. "我发现问题的根源是大家都不会前缀和."--敦爷 A 敦爷spj写错了,差点把蒟蒻swk送走 \(50pts:\) ...
- ZROI 19.08.11模拟赛
传送门 写在前面:为了保护正睿题目版权,这里不放题面,只写题解. dlstql,wsl A \(10pts:\) \(a=100,T=100\),对每个排列构造一个反的,一步到位即可. \(20pts ...
- ZROI 19.08.10模拟赛
传送门 写在前面:为了保护正睿题目版权,这里不放题面,只写题解. A \(20pts:\) 枚举操作序列然后暴力跑,复杂度\(O(6^n)\). \([50,80]pts:\) 枚举改成dfs,每层操 ...
- ZROI 19.08.05模拟赛
传送门 写在前面:为了保护正睿题目版权,这里不放题面,只写题解. A \(21pts:\) 随便枚举,随便爆搜就好了. \(65pts:\) 比较显然的dp,设\(f_{i,j,k}\)表示在子树\( ...
- ZROI 19.08.04模拟赛
传送门 写在前面:为了保护正睿题目版权,这里不放题面,只写题解. "这应该是正睿OI历史上第一次差评破百的比赛." "这说明来正睿集训的人越来越多了." &qu ...
- ZROI 19.08.08模拟赛
传送门 写在前面:为了保护正睿题目版权,这里不放题面,只写题解. 首先恭喜swk今天翻车! "小心大样例演你."--天祺鸽鸽 果然swk今天被大样例演死了,天祺鸽鸽诚不欺我! A ...
- ZROI 19.08.02 杂题选讲
给出\(n\)个数,用最少的\(2^k\)或\(-2^{k}\),使得能拼出所有数,输出方案.\(n,|a_i|\leq 10^5\). 显然一个绝对值最多选一次.这个性质非常强. 如果所有都是偶数, ...
随机推荐
- 四十七:数据库之alembic数据库迁移工具的基本使用
在一般情况下,如果修改了模型,如增加或者删除了字段,SQLAlchemy是不会更新的,这就需要使用alembic来实现 使用alembic步骤:一:定义好模型二:使用alembic创建一个仓库:ale ...
- UI自动化关于图片验证码识别的解决方法
def __save_screenshot(self): self.driver.save_screenshot('full_snap.png') self.page_snap_obj = Image ...
- qrcode-reader——二维码识别
JavaScript QRCode reader for HTML5 enabled browser 参考资料1:[https://www.npmjs.com/package/qrcode-reade ...
- beego框架学习(二) -路由设置
路由设置 什么是路由设置呢?前面介绍的 MVC 结构执行时,介绍过 beego 存在三种方式的路由:固定路由.正则路由.自动路由,接下来详细的讲解如何使用这三种路由. 基础路由 从beego1.2版本 ...
- 在Windows服务器安装ss服务端用于逃脱公司行为管理
1.安装:python-2.7.14.amd64.msi 2.配置环境变量 3.Win64OpenSSL-1_0_2n.exe 4.安装ss服务端:pip install **adowsocks 5. ...
- 打开VMware提示该虚拟机似乎正在使用中该怎么办?
一,当出现虚拟机无法使用时 解决办法: 1,找到虚拟机安装路径. 2,然后,将后缀为.lck的文件夹删除 二,VMware虚拟机配置文件(.vmx)损坏修复 1,找到后缀vmx的文件,记事本打开: 2 ...
- matlab2012a过期问题解决办法(转载)
转载:http://blog.sina.com.cn/s/blog_4a46812b0102x694.html 以前安装过Matlab2013a等高版本,发现自己win7 系统每次重启后,Matl ...
- nodejs+koa2 实现一个get请求
html: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF ...
- PTA(Basic Level)1011.A+B和C
给定区间 [−231,231] 内的 3 个整数 A.B 和 C,请判断 A+B 是否大于 C. 输入格式: 输入第 1 行给出正整数 T (≤10),是测试用例的个数.随后给出 T 组测试用例,每组 ...
- [转帖]RSA算法与DSA算法的区别
RSA算法与DSA算法的区别 https://cloud.tencent.com/developer/news/254061 文章来源:企鹅号 - SuperFullStack 本文译自:StackE ...