Educational Codeforces Round 89 题解
昨晚简单 vp 了场比赛找了找状态,切了 5 个题(有一个差点调出来),rk57,还算理想吧,毕竟我已经好久没碰过电脑了(
A
签到题不多说,直接输出 \(\min\{a,b,\dfrac{a+b}{3}\}\) 即可
B
对于每次操作维护一个区间 \([l,r]\) 表示有可能是 \(1\) 的位置组成的集合(显然是一个区间),初始 \(l=r=x\),每次操作如果 \([l,r]\) 和操作的区间有交那么取个并即可,复杂度线性
C
开个桶记录下到 \((1,1)\) 距离为 \(1,2,3,\cdots,n+m-1\) 的点中分别有多少个 \(0,1\),然后在对称的位置里面取 \(\min\) 相加即可,复杂度线性
D
如果 \(n\) 可以表示成 \(p^{\alpha}\) 的形式,其中 \(p\) 是质数,\(\alpha\) 是整数,那么答案就是 \(-1\),否则记 \(mnp_x\) 为 \(x\) 的最小质因子,\(\beta\) 为 \(mnp_n\) 在 \(n\) 的质因数分解形式中的最大因子,那么 \(\dfrac{n}{p^{\beta}},mnp_{\dfrac{n}{p^{\beta}}}\) 符合条件
E
对于每一段二分找出这一段可能的左端点、右端点,然后乘法原理乘起来即可,二分检验可用 ST 表
F
这道题还蛮有意思的,比赛最后几分钟肝出来了,却因为爆 int 一直 WA 8,赛后 2min 把它 A 掉了……
首先注意到图中每个简单路径的长度都 \(\le m\),因此当 \(k\) 比较大(\(>m\))组成的路径肯定不是简单路径,故不难猜出当 \(k\) 比较大时最优方案是先走到某条边 \(e\) 的一个端点处,然后在这条边上来回走动,在这种情况下每过一秒经过的长度 \(\Delta l\) 都等于这条边的边权 \(w\),因此这条边经过的路径长度可以写成一个与时间 \(t\) 有关的一次函数 \(y=wt+b(t\ge t_0)\),其中 \(t_0\) 为到达这条边的时间。
受到这个思想的启发,我们可以先暴力 \(dp\) 求出当 \(k\le m\) 时以每个点结束的最短路径,这部分的贡献我们特殊处理一下,特判掉。对于 \(k>m\) 的部分我们就暴力枚举是哪条边,以及到达这条边的时间 \(t_0\),这样有 \(n^2\) 条直线(或者准确来说,是一条射线),求出它们的凸壳即可,复杂度 \(n^2\log n\) 可以通过。当然这里也有一个非常 trival 的优化,不难发现同一条边,对于不同的 \(t_0\),它们表示的直线的斜率是相同的,我们只需保留截距最大的那条即可。这样建凸包的时间可以降到 \(n\log n\),总复杂度 \(nm+n\log n\)。
G
这道题倒感觉不如 F 有意思,虽然我现场并没有想到正解,可能是我 \(dp\) 太菜了吧
一个很显然的思路是设 \(dp_{i,j}\) 表示考虑了前 \(i\) 位,现在匹配到第 \(j\) 位的最小删除字符个数。这一步我倒是想到了,然鹅我只想到了线性的转移,看来还是 wtcl 了啊……
事实上这个状态可以实现 \(\mathcal O(1)\) 转移:
- \(dp_{i+1,j}\leftarrow dp_{i,j}+1\)
- \(dp_{i+1,j+1}\leftarrow dp_{i,j}(s_{i+1}=t_{j+1})\)
- \(dp_{nxt_i,j}\leftarrow dp_{i,j}\)(其中 \(nxt_i\) 为从 \(i\) 开始,如果把小写字母当作左括号,点当作右括号,第一个达到括号平衡的位置)
时空复杂度均平方。
Educational Codeforces Round 89 题解的更多相关文章
- Educational Codeforces Round 89 (Rated for Div. 2) C. Palindromic Paths(贪心)
题目链接:https://codeforces.com/contest/1366/problem/C 题意 有一个 $n \times m$ 的 $01$迷宫,要使从 $(1,1)$ 到 $(n,m) ...
- Educational Codeforces Round 89 (Rated for Div. 2) B. Shuffle(数学/双指针)
题目链接:https://codeforces.com/contest/1366/problem/B 题意 大小为 $n$ 的数组 $a$,除了 $a_x = 1$,其余 $a_i = 0$,依次给出 ...
- Educational Codeforces Round 89 (Rated for Div. 2) A. Shovels and Swords(贪心/数学)
题目链接:https://codeforces.com/contest/1366/problem/A 题意 有两个数 $a$ 和 $b$,每次可以选择从一个数中取 $2$,另一个数中取 $1$,问最多 ...
- Educational Codeforces Round 89 (Rated for Div. 2) C Palindromic Paths
题目链接:Palindromic Paths 题意: 给你一个n行m列的矩阵,这个矩阵被0或者1所填充,你需要从点(1,1)走到点(n,m).这个时候会有很多路径,每一条路径对应一个01串,你可以改变 ...
- Educational Codeforces Round 19 题解【ABCDE】
A. k-Factorization 题意:给你一个n,问你这个数能否分割成k个大于1的数的乘积. 题解:因为n的取值范围很小,所以感觉dfs应该不会有很多种可能-- #include<bits ...
- Educational Codeforces Round 55 题解
题解 CF1082A [Vasya and Book] 史上最难A题,没有之一 从题意可以看出,翻到目标页只有三种办法 先从\(x\)到\(1\),再从\(1\)到\(y\) 先从\(x\)到\(n\ ...
- Codeforces Educational Codeforces Round 54 题解
题目链接:https://codeforc.es/contest/1076 A. Minimizing the String 题意:给出一个字符串,最多删掉一个字母,输出操作后字典序最小的字符串. 题 ...
- Educational Codeforces Round 89 (Rated for Div. 2) A Shovels and Swords B、Shuffle
题目链接:A.Shovels and Swords 题意: 你需要一个木棍和两个钻石可以造出来一把剑 你需要两个木棍和一个钻石可以造出来一把铁锹 你现在有a个木棍,b个钻石,问你最多可以造出来几件东西 ...
- Educational Codeforces Round 89 (Rated for Div. 2)D. Two Divisors 线性筛质因子
题目链接:D:Two Divisors 题意: 给你n个数,对于每一个数vi,你需要找出来它的两个因子d1,d2.这两个因子要保证gcd(d1+d2,vi)==1.输出的时候输出两行,第一行输出每一个 ...
随机推荐
- the Agiles Scrum Meeting 7
会议时间:2020.4.15 21:00 1.每个人的工作 根据项目进度,我们将原先的完善组和debug组合并,成为团队项目增量开发组,原增量组成为个人结对项目增量开发组. 今天已完成的工作 个人结对 ...
- [技术博客]大闸蟹的技术博客,通过gitlab api进行用户批量创建
技术博客--通过gitlab api批量注册用户 gitlab登录界面本身提供了register功能,但需要手工一个个添加,对于一次性会添加整个班级的学生的软工平台来说并不科学合理.使用gitlab ...
- filebeat收集日志到elsticsearch中并使用ingest node的pipeline处理
filebeat收集日志到elsticsearch中 一.需求 二.实现 1.filebeat.yml 配置文件的编写 2.创建自定义的索引模板 3.加密连接到es用户的密码 1.创建keystore ...
- elf文件--基于《ctf竞赛权威指南pwn篇》
1.ELF概念: ELF(Executable and Linkable Format),即"可执行可链接格式",最初由UNIX系统实验室作为应用程序二进制接口(Applicati ...
- 2021.10.27考试总结[冲刺NOIP模拟17]
T1 宝藏 发现每个数成为中位数的长度是关于权值单调的.线段树二分判断是否合法,单调指针扫即可. 考场上写了二分,平添\(\log\). \(code:\) T1 #include<bits/s ...
- python基础语法--字典的遍历
原文链接:https://blog.csdn.net/normang/article/details/55804231 (1)遍历key值 >>> a {'a': '1', 'b': ...
- Node.js躬行记(13)——MySQL归档
当前我们组管理着一套审核系统,除了数据源是服务端提供的,其余后台管理都是由我们组在维护. 这个系统就是将APP中的各类社交信息送到后台,然后有专门的审核人员来判断信息是否合规,当然在送到后台之前已经让 ...
- S 锁与 X 锁的爱恨情仇《死磕MySQL系列 四》
系列文章 一.原来一条select语句在MySQL是这样执行的<死磕MySQL系列 一> 二.一生挚友redo log.binlog<死磕MySQL系列 二> 三.MySQL强 ...
- shell 中单引号和双引号的区别
用以下代码来说明: #!/bin/bash url="http://c.biancheng.net" website1='C语言中文网:${url}' website2=" ...
- Jmeter 正则表达式提取Response Headers,Response Body里的值
实践过程中遇到需要提取Response Headers,Response Body里的值 一.获取Response Body的值,这里采用json提取器形式 1.Response Body返回值,如下 ...