传送门

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


  • A

\(20pts:\)

枚举操作序列然后暴力跑,复杂度\(O(6^n)\)。

\([50,80]pts:\)

枚举改成dfs,每层操作后还原。复杂度\(O(3^n)\)。

全0或全1可以直接返回。

写法优秀可以过\(80pts\)。

\(100pts:\)

类似非递归fft的写法,bitrev后可以位运算优化。

最下面四层可以预处理,复杂度\(O(3^{n-4})\)。

然后疯狂卡常就完事了(

然而由于swk人菜常数大,明明所有剪枝都加上了仍然挂掉了qwq

破案了,原来swk太菜了,在递归的每一层都重构了一遍结构体,结构体里还用了vector,于是多了\(12\)倍常数,就死掉了。


  • B

\(80pts:\)

枚举最小差,设为\(d\)。

统计最小差大于等于 \(d\) 的集合最大差之和,发现对于一个最小差为\(x\)的集合,它的最大差刚好被统计了\(x\)次。

直接dp,设\(f_i\)表示前\(i\)个元素,且第\(i\)个元素必选的最大差之和。转移时需要一堆前缀和。我代码写的特别诡异

\(100pts:\)

仍然枚举\(d\),对每个\(d\)枚举集合元素个数\(x\),发现\(dx\leq n\),所以枚举复杂度为\(O(n\log n)\)。

然后随便组合数一下就可以了。

发现集合中的最大值和最小值是对称的,可以分开算。

考虑枚举最小值为\(c\),则方案数为\((^{n-c-x(d-1)}_{~~~~~~~~x-1})\)。即选中\(x\)个元素,在它们后面附带\(d-1\)个额外的空格,其中位于位置\(c\)的元素必须被选中,且前面不能有任何被选中的元素,可以直接把这个元素删掉。

设\(a=n-x(d-1),b=x-1\),则总贡献为\(\sum_{c=1}^{a-b} c\cdot (^{a-c}_{~~~b})=\sum_{c=b}^a (a-c)\cdot (^c_b)=\sum_{c=b}^a (a+1)\cdot(^c_b)-(c+1)\cdot (^c_b)\)。

将后半部分拆开,得到\((c+1)\cdot (^c_b)=\frac{(c+1)c!}{b!(c-b)!}=(b+1)\frac{(c+1)!}{(b+1)!(c-b)!}=(b+1)\cdot(^{c+1}_{b+1})\)。

代回上式,得到\(\sum_{c=b}^a (a+1)\cdot(^c_b)-(b+1)\cdot (^{c+1}_{b+1})=(a+1)\cdot(^{c+1}_{b+1})-(b+1)\cdot(^{c+2}_{b+2})\)。可以\(O(1)\)计算。


  • C

swk完全不会做找观察题所以光荣爆零了。然而大家都切了这道题,所以swk菜死了。

一个很重要的结论就是每个点只会往上走。

感性理解下就是越往上边就越稀疏。

于是每个点只有\(O(\log)\)个点与它相关,建出边直接跑就可以了。

上面的写法比较麻烦。好写一点的方法是,两个点必然在lca附近相遇。对每个点可以算出向上不经过桥最近的祖先,贪心地找最高的祖先即可。需要特判两个点在祖先的两侧相遇的情况。

ZROI 19.08.10模拟赛的更多相关文章

  1. ZROI 19.08.07模拟赛

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

  2. ZROI 19.08.09模拟赛

    传送门 写在前面:为了保护正睿题目版权,这里不放题面,只写题解. A \(70pts:\) 维护一个栈,从一侧向另一侧扫描,如果新加入的元素与当前栈顶相同,则出栈,否则进栈.显然一个子串是括号序列,当 ...

  3. ZROI 19.08.06模拟赛

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

  4. ZROI 19.08.04模拟赛

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

  5. ZROI 19.08.12模拟赛

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

  6. ZROI 19.08.11模拟赛

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

  7. ZROI 19.08.05模拟赛

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

  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. Java学习之==>异常体系

    一.定义 程序运行时总是会遇到各种各样的问题,Java中的异常体系就是针对这些问题提出的统一的处理方案.在Java中,将这些各种各样的问题进行归类后,统一称为异常. 二.分类 我们先来看看下面这个图: ...

  2. java:IO流(File,字节流/输入输出流(InputStream(FileInputStream),OutputStream(FileOutStream)),字符流(Reader,Writer))

    File: * java.io.File类:代表一个文件或目录. * 常用的构造方法: * File(String pathname)通过将给定路径名字符串转换为抽象路径名来创建一个新 File 实例 ...

  3. python学习之数据类型(set)

    3.9 集合(set) 3.9.1 介绍 ​ 集合是一个无序且不重复的元素集合.元素必须是可哈希的(int,str,tuple,bool).可以把它看作是dic的key的集合.用{}表示. ​ 注意: ...

  4. 应用安全 - 平台 | 工具 - Centreon Web - 漏洞 - 汇总

    简介 产地 法国 用途 监控 分布 CVE-2019-16405 https://thecybergeek.co.uk/cves/2019/09/19/CVEs.html

  5. kafka语句示例

    1.从http://kafka.apache.org/下载kafka安装包:2.tar zxvf kafka_2.8.0.tar.gz,修改配置文件conf/server.properties:bro ...

  6. [转帖]Linux修改时区

    公司一台国产服务器的时间总是错的 我用 date -R 出来的结果 是 +7.0 修改办法就是 这个文档来里面的 https://www.cnblogs.com/royfans/p/8056270.h ...

  7. laravel修改用户模块的密码验证

    做项目的时候,用户认证几乎是必不可少的,如果我们的项目由于一些原因不得不使用 users 之外的用户表进行认证,那么就需要多做一点工作来完成这个功能. 现在假设我们只需要修改登录用户的表,表名和表结构 ...

  8. Mysql 表空间和 数据页空洞

    一.表空间1.表空间: innodb 引擎存储的最高层: 存放所有的数据2.独立表空间:Mysql 版本 5.6 后默认开启的单表单空间(1)Innodb 默认存储引擎页的大小为 16K :默认表空间 ...

  9. 03: redis高级

    1.1 布隆过滤器 1.布隆过滤器是什么?(判断某个key一定不存在) 1. 本质上布隆过滤器是一种数据结构,比较巧妙的概率型数据结构 2. 特点是高效地插入和查询,可以用来告诉你 “某样东西一定不存 ...

  10. django-restframework使用

    安装restframework: pip install djangorestframework 修改项目settings.py: INSTALLED_APPS = [ 'django.contrib ...