传送门

写在前面:为了保护正睿题目版权,这里不放题面,只写题解。


  • 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模拟赛的更多相关文章

  1. ZROI 19.08.07模拟赛

    传送门 写在前面:为了保护正睿题目版权,这里不放题面,只写题解. "正睿从来没有保证,模拟赛的题目必须原创." "文案不是我写的,有问题找喵老师去."--蔡老师 ...

  2. ZROI 19.08.06模拟赛

    传送门 写在前面:为了保护正睿题目版权,这里不放题面,只写题解. 今天正睿又倒闭了,从删库到跑路. 天祺鸽鸽txdy! A "不要像个小学生一样一分钟就上来问东西."--蔡老板 虽 ...

  3. ZROI 19.08.12模拟赛

    传送门 写在前面:为了保护正睿题目版权,这里不放题面,只写题解. "我发现问题的根源是大家都不会前缀和."--敦爷 A 敦爷spj写错了,差点把蒟蒻swk送走 \(50pts:\) ...

  4. ZROI 19.08.11模拟赛

    传送门 写在前面:为了保护正睿题目版权,这里不放题面,只写题解. dlstql,wsl A \(10pts:\) \(a=100,T=100\),对每个排列构造一个反的,一步到位即可. \(20pts ...

  5. ZROI 19.08.10模拟赛

    传送门 写在前面:为了保护正睿题目版权,这里不放题面,只写题解. A \(20pts:\) 枚举操作序列然后暴力跑,复杂度\(O(6^n)\). \([50,80]pts:\) 枚举改成dfs,每层操 ...

  6. ZROI 19.08.05模拟赛

    传送门 写在前面:为了保护正睿题目版权,这里不放题面,只写题解. A \(21pts:\) 随便枚举,随便爆搜就好了. \(65pts:\) 比较显然的dp,设\(f_{i,j,k}\)表示在子树\( ...

  7. ZROI 19.08.04模拟赛

    传送门 写在前面:为了保护正睿题目版权,这里不放题面,只写题解. "这应该是正睿OI历史上第一次差评破百的比赛." "这说明来正睿集训的人越来越多了." &qu ...

  8. ZROI 19.08.08模拟赛

    传送门 写在前面:为了保护正睿题目版权,这里不放题面,只写题解. 首先恭喜swk今天翻车! "小心大样例演你."--天祺鸽鸽 果然swk今天被大样例演死了,天祺鸽鸽诚不欺我! A ...

  9. ZROI 19.08.02 杂题选讲

    给出\(n\)个数,用最少的\(2^k\)或\(-2^{k}\),使得能拼出所有数,输出方案.\(n,|a_i|\leq 10^5\). 显然一个绝对值最多选一次.这个性质非常强. 如果所有都是偶数, ...

随机推荐

  1. bat中if语句的用法

    (作者:sanqima ) 例如,删除“C:\Documents and Settings\Administrator\桌面\T1\txt\批处理实验\unit1”里的a.txt文件,使用if的代码如 ...

  2. 做筛选遍历时遇到的json字符串、json对象、json数组 三者之间的转换问题

    这个是后台对登录用户以及筛选条件的操作 @Override public List<SdSdPer> listResults(String sidx, String sord) { try ...

  3. JDBC操作数据库的基本操作

    JDBC操作数据库的基本步骤: 1)加载(注册)数据库驱动(到JVM). 2)建立(获取)数据库连接. 3)创建(获取)数据库操作对象. 4)定义操作的SQL语句. 5)执行数据库操作. 6)获取并操 ...

  4. python—004

    一.集合(set) 1.定义:不同的元素组成,无序排列的,可哈希的值(存放不可变类型:数字.字符串.元组) s={1,2,'ww',3,4,5,6,7,8,'ee'}print (type(s))pr ...

  5. java锁机制的面试题

    java锁机制的面试题 1.ABA问题 2.CAS乐观锁 3.synchronize实现原理 4.synchronize与lock的区别 5.volatile实现原理 6.乐观锁的业务场景及实现方式 ...

  6. 重新网格化(Remesh)

    原文链接 Remesh并没有一个严格的定义,简单的讲,Remesh就是从一个输入网格生成另一个网格,并且满足一定的要求.根据网格改动大小,可以分为这么几类: 保持顶点拓扑和几何信息,优化网格连接关系 ...

  7. js多张图片合成一张图,canvas(海报图,将二维码和背景图合并) -----vue

    思路:vue中图片合并 首先准备好要合并的背景图,和请求后得到的二维码, canvas画图,将两张背景图和一张二维码用canvas画出来, 将canvas再转为img 注意canvas和图片的清晰图和 ...

  8. mysql substr方法

    mysql中的substr()函数 mysql中的substr()函数和hibernate的substr()参数都一样,就是含义有所不同. 用法: substr(string string,num s ...

  9. static 和extern关键字

    static是C++中常用的修饰符,它被用来控制变量的存贮方式和可见性.extern "C"是使C++能够调用C写作的库文件的一个手段,如果要对编译器提示使用C的方式来处理函数的话 ...

  10. Python文件的几种读写方式

    1). "w "写模式,它是不能读的,如果用w模式打开一个已经存在的文件,会清空以前的文件内容,重新写 "w+ "是读写内容,只要沾上w,肯定会清空原来的文件2 ...