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.输出的时候输出两行,第一行输出每一个 ...
随机推荐
- javascript-jquery对象的动画处理
一.显示与隐藏动画效果 1.hide(动画持续时间,easing用来指定切换效果,动画执行完毕调用函数): $("p").hide(5000,"swing",f ...
- rocketMQ(一)基础环境
一.安装: http://rocketmq.apache.org/dowloading/releases/ https://www.apache.org/dyn/closer.cgi?path=roc ...
- UVA-1498 Activation
UVA-1498 DP应该是肯定的,设 f [ i ] [ j ] 表示现在对中共有 i 人,Tomato在第 j 个,出现所求情况的概率,我们可以很(简单的)艰难的列出下列方程: f[i][1] = ...
- Sharding-JDBC基本使用,整合Springboot实现分库分表,读写分离
结合上一篇docker部署的mysql主从, 本篇主要讲解SpringBoot项目结合Sharding-JDBC如何实现分库分表.读写分离. 一.Sharding-JDBC介绍 1.这里引用官网上的介 ...
- 利用Ambari平台安装与部署Hadoop
* 本篇是利用Ambari平台安装与部署Hadoop,如果需要原生部署Hadoop,请点击以下地址: https://www.cnblogs.com/live41/p/15467263.html 一. ...
- sql 多表联合查询更新
sqlserver: update A a set a.i = b.k from B b where a.key = b.key oracle : update A a set a.i = (sele ...
- AXI协议中的模棱两可的含义的解释(Cachable和Bufferable)
转载:https://blog.csdn.net/hit_shaoqi/article/details/53243173 Cachable和Bufferable 一个Master发出一个读写的requ ...
- 转:基于 xilinx vivado 的PCIE ip核设置与例程代码详解
连接:https://blog.csdn.net/u014586651/article/details/103826967#comments
- simulate_click
#!/bin/bashlet actual_x=104+144*$[$2-1]let actual_y=945+144*$[$1-1]adb shell input tap ${actual_x} $ ...
- 前端需要了解的颜色模型,RGB、HSL和HSV
颜色模型,是用来表示颜色的数学模型.比如最常见的 RGB模型,使用 红绿蓝 三色来表示颜色. 一般的颜色模型,可以按照如下分类: 面向硬件设备的颜色模型:RGB,CMYK,YCrCb. 面向视觉感知的 ...