CSP-S2019 题解
做了这套题,如果是让现在的我当时去考的话应该一共可以有 450 分,格雷码,括号树,树的重心都可以做,树上的数可以有 10 分,Emiya 至少可以有 76 分, 划分也可以有 64 分。看 OIerDB 上可以有 166 名的好成绩。
我的代码合集:洛谷 / 云剪贴板
[CSP-S2019] 格雷码
首先是格雷码有一个很好的生成方式,最低位 \(0110\) 的循环,次高位 \(00111100\) 的循环……
也就是说第 \(i\) 位由 \(2^{i}\) 个 \(0\),\(2^{i + 1}\) 个 \(1\),再来 \(2^i\) 个 \(0\) 来循环,并且这与总共有多少位是没有关系的!
那么我们就可以利用这个方法生成给定的第 \(k\) 个数,输出前 \(n\) 位即可。
[CSP-S2019] 括号树
首先我们考虑只有一条链怎么做。
将 ()
看作 \(1 / -1\),做出前缀和序列。
那么对于每一个区间 \([l, r]\),为合法括号序列当且仅当 \(pre_{l - 1} = pre_r\) 并且 \(\min_{l \le i \le r} = pre_r\)。
于是可以利用单调栈,对于每一个右端点找到满足第二个条件的区间(也就是在前面第一个 \(\lt pre_r\) 后的左端点都满足第二个条件),顺便记录一下与栈顶相等的数的个数即可。
如果放在树上,我们只需要一个支持撤销的栈即可。
[CSP-S2019] 树上的数
抽象题,我只会 \(n!\) 和菊花图的做法 QwQ
[CSP-S2019] Emiya 家今天的饭
首先有一个很 naive
的 \(O(m n^3)\) DP,稍稍卡常应该是完全可以过的。
具体来说,我们发现之多只有一个不满足 \(\le \lfloor \frac k2 \rfloor\) 的食材,那么我们枚举这个食材是什么即可。
接下来,我们设 \(f_{i, j, k}\) 表示对于这个食材,考虑了前 \(i\) 种烹饪方法,选择了 \(j\) 种这个食材,一共选择了 \(k\) 种。那么枚举这一次的选择就可以转移了。
令 \(S_i\) 表示第 \(i\) 种烹饪方式有多少种选择,即 \(S_i = \sum a_{i, k}\),如果当前食材为 \(z\),那么转移为:
\]
最后我们只需要 \(\sum_{j \gt \lfloor \frac k2 \rfloor} f_{n, j, k}\) 即可。
然而这极度不优秀,将 \(j \le \lfloor \frac k2 \rfloor\) 转化为 \(j \gt k - j\),那么我们只需要 \(\sum_{j \gt k - j} f_{n, j, k}\) 即可,也就是我们只关注 \(j\) 与 \((k - j)\) 的差值,那么我们按照这个作为 DP 对象即可。
\]
这就是 \(O(m n^2)\) 的了,可以过。
[CSP-S2019] 划分
首先,\(O(n^2)\) 的 DP 是简单的,我们只需要记录 \(f_i\) 表示最小代价,\(g_i\) 表示使得为最小代价最后一段的最小值。
然而我们需要 \(O(n)\) QwQ,于是考虑 \(a^2 + b^2 \le (a + b)^2\),也就是我们需要使得划分出的段最多,那么只需要利用一个单调队列即可。
具体来说,我们需要找到 \(g_j \le pre_i - pre_j\) 的最大的 \(j\),也就是 \(g_j + pre_j \le pre_i\) 的 \(j\) 即可,由于 \(pre_i\) 是单调的,这容易利用单调队列维护。
[CSP-S2019] 树的重心
见我的另一篇文章:[CSP-S2019] 树的重心 题解
CSP-S2019 题解的更多相关文章
- 2019 CSP J/S第2轮 视频与题解
CSP入门组和提高组第二轮题解 转自网络
- 上午小测3 T1 括号序列 && luogu P5658 [CSP/S 2019 D1T2] 括号树 题解
前 言: 一直很想写这道括号树..毕竟是在去年折磨了我4个小时的题.... 上午小测3 T1 括号序列 前言: 原来这题是个dp啊...这几天出了好几道dp,我都没看出来,我竟然折磨菜. 考试的时候先 ...
- [CSP模拟测试43、44]题解
状态极差的两场.感觉现在自己的思维方式很是有问题. (但愿今天考试开始的一刻我不会看到H I J) A 考场上打了最短路+贪心,水了60. 然而正解其实比那30分贪心好想多了. 进行n次乘法后的结果一 ...
- 题解 nflsoj489 【六校联合训练 CSP #15】小D与随机
题目链接 考虑枚举好点的集合.此时要考虑的问题是如何填入\(1\sim n\)这些数使得恰好我们枚举到的这些点是好点,即:求出有多少种合法的填数方案. \(1\)号点一定是好点.那么除\(1\)号点外 ...
- CCF CSP 201703-3 Markdown
CCF计算机职业资格认证考试题解系列文章为meelo原创,请务必以链接形式注明本文地址 CCF CSP 201703-3 Markdown 问题描述 Markdown 是一种很流行的轻量级标记语言(l ...
- CCF计算机职业资格认证考试题解
CCF计算机职业资格认证考试题解系列文章为meelo原创,请务必以链接形式注明本文地址 CCF计算机职业资格认证考试题解 CCF计算机软件能力认证(简称CCF CSP认证)是CCF计算机职业资格认证系 ...
- CCF CSP 201312-3 最大的矩形
CCF计算机职业资格认证考试题解系列文章为meelo原创,请务必以链接形式注明本文地址 CCF CSP 201312-3 最大的矩形 问题描述 在横轴上放了n个相邻的矩形,每个矩形的宽度是1,而第i( ...
- CCF CSP 201609-3 炉石传说
CCF计算机职业资格认证考试题解系列文章为meelo原创,请务必以链接形式注明本文地址 CCF CSP 201609-3 炉石传说 问题描述 <炉石传说:魔兽英雄传>(Hearthston ...
- CCF CSP 201403-3 命令行选项
CCF计算机职业资格认证考试题解系列文章为meelo原创,请务必以链接形式注明本文地址 CCF CSP 201403-3 命令行选项 问题描述 请你写一个命令行分析程序,用以分析给定的命令行里包含哪些 ...
- CCF CSP 201709-4 通信网络
CCF计算机职业资格认证考试题解系列文章为meelo原创,请务必以链接形式注明本文地址 CCF CSP 201709-4 通信网络 问题描述 某国的军队由N个部门组成,为了提高安全性,部门之间建立了M ...
随机推荐
- 《C# in depth》第2章C#2.0中的更改(十五)——字面量
一.概念 在计算机编程中,Literals(字面量)是指在程序中直接表示数据的一种方式.它们是在代码中出现的固定值,与变量不同,它们没有名称或标识符. Literals 可以用于各种数据类型,包括整数 ...
- CF1535F String Distance
\(CF1535F\ \ String\ Distance\) 题意 给 \(n\) 个长度均为 \(len\) 的字符串 \(T_1,T_2,\dots T_n\),定义 \(f(a,b)\) 为将 ...
- 谢老师2024春 - Day1:组合数学
Day1:组合数学 A - P5520 [yLOI2019] 青原樱 隔板法: 已选择的位置:\(m\) 棵樱花树. 未选择的位置:\(n-m\) 个空位置 板的数量(一棵樱花树就是一个板):\(m\ ...
- Java 定时任务技术趋势
简介:定时任务是每个业务常见的需求,比如每分钟扫描超时支付的订单,每小时清理一次数据库历史数据,每天统计前一天的数据并生成报表等等. 作者:黄晓萌(学仁) Java 中自带的解决方案 使用 Time ...
- 基于 Serverless 打造如 Windows 体验的个人专属家庭网盘
简介:虽然现在市面上有些网盘产品, 如果免费试用,或多或少都存在一些问题, 可以参考文章<2020 国内还能用的网盘推荐>.本文旨在使用较低成本打造一个 "个人专享的.无任何限 ...
- Service Mesh 从“趋势”走向“无聊”
简介: 过去一年,阿里巴巴在 Service Mesh 的探索道路上依旧扎实前行,这种坚定并非只因坚信 Service Mesh 未来一定是云计算基础技术的关键组成部分,还因需要借这一技术趋势去偿还过 ...
- Cloudera CDP 企业数据云测试开通指导
简介:基于阿里云部署的 Cloudera CDP 企业数据云平台已经进入公测阶段,本文详细介绍了相关试用/试用流程. 基于阿里云部署的 Cloudera CDP 企业数据云平台已经进入公测阶段,如对 ...
- Pull or Push?监控系统如何选型
简介: 对于建设一套公司内部使用的监控系统平台,相对来说可选的方案还是非常多的,无论是用开源方案自建还是使用商业的SaaS化产品,都有比较多的可选项.但无论是开源方案还是商业的SaaS产品,真正实施 ...
- dotnet 使用 XWT 构建跨平台客户端 入门篇
本文告诉大家如何入门开始开发一个基于 mono 组织开源的 XWT 跨平台客户端 UI 框架的应用,本文的 xwt 是在 GitHub 上完全开源的,基于 MIT 协议的,底层采用 GTK# 的 UI ...
- dotnet C# 调用委托的 GetInvocationList 的对象分配
本文也叫跟着 Stephen Toub 大佬学性能优化系列,这是我从 Stephen Toub 大佬给 WPF 框架做性能优化学到的知识,在热路径下,也就是频繁调用的模块,如果调用了委托的 GetIn ...