[题解] Codeforces Dytechlab Cup 2022 1737 A B C D E 题解
傻*Dytechlab还我rating!(不过目前rating还没加上去,据说E是偷的说不定要unrated)
实在没预料到会打成这样。。。
求点赞
A. Ela Sorting Books
从前往后一位一位确定答案。用一个数组记录当前每个字母库存的数量,要确定答案的某一位时,枚举前\(min(\frac nk,26)\)个字母,找到第一个库存为0的字母,则当前这位的答案就是这个字母。然后把字典序在这个字母之前的字母库存都-1就行。最后把库存中剩下的字母随便塞进未塞满的块就行了。
B. Ela's Fitness and the Luxury Number
询问[l,r]中的Luxury数的个数,一看就知道用[1,r]中的减去[1,l-1]中的。假设一个Luxury数被表示成了\(a \cdot b\)的形式,其中\(a \leq b\)。题目要求\(a=\lfloor \sqrt{a\cdot b}\rfloor\),转化一下得到\(a \cdot b < (a+1)^2\),进一步得到\(a \leq b < a+2+\frac 1a\),也就是\(a \leq b \leq a+2\)。这对于所有的\(a \geq 1\)都满足。容易发现每个Luxury数都只能被一组合法的\(a,b\)表示,每组合法的\(a,b\)都能表示一个Luxury数。假设现在要询问[1,x]中的Luxury数个数,分别求出该区间中能表示成\(a^2,a(a+1),a(a+2)\)的数的个数就行了。这里建议用二分,直接调用sqrt函数的话可能会有精度问题。
时间复杂度\(O(t\cdot log(l+r))\)。
C. Ela and Crickets
一眼丁真,鉴定为纯纯的傻*题。完全无法区分OI老手和菜鸡。
对于初始的L型,我们把他凹进去的那个位置,以及所有与这个位置横坐标、纵坐标的奇偶性都相同的位置称为"不可到达的"。手动操作几步,发现这些位置确实永远无法到达。

其他位置则是可到达的,大概长成这样:

手玩一下发现对于任意的初始L型位置,所有的可到达位置都可以被走到。
有一个例外:当L型的中间一个位置在棋盘左上角时,只能走到第一行和第一列的位置。其他四个角同理:

一个技巧:已知L型三个点的坐标,求凹进去那个点的坐标,直接把已知的三个点横纵坐标分别去异或就行了。
我一开始判L型在角上判错了,后来又发现有一个地方在一个询问内同时输出了YES和NO,直接导致这场打的和*一样。自闭.jpg
D. Ela and the Wiring Wizard
一开始的"魔法"操作其实是,把一条边的一个端点沿着与其相连的一条边进行滑动。如果我们滑动了一条边,那不能白滑,最后肯定是要走它的;把它作为"轨道"给其他的边滑也是不优的。观察发现我们最后走的路径一定只由一条边组成,如果多于一条,我们可以把最小的那条拿出来不断滑动,覆盖路径上所有的其他边,这样一定不劣。枚举最后走的那条边(就算不在1~n的某条简单路径上也可以),想办法把它的两个端点分别滑到1和n。有两种滑法:
- 两个点分别通过最短路滑到1和n。当前被枚举的这条边只会被两条最短路覆盖最多一次,先滑最短路覆盖了这条边的那个端点即可。
- 题目里说了滑动过程中是允许自环的,所以我们可以先把两个端点的其中一个滑动到某个位置x,再把另一个用1次操作通过被枚举的边本身滑到x(形成自环),然后两个端点分道扬镳,各自通过最短路滑到1或n。
注意这里的最短路指的是边权为1的最短路,可以用floyd求出。
时间复杂度\(O(n^3)\)。
E. Ela Goes Hiking
就差1分钟调完,改了两个字符就过了
比赛公告评论里说是从noip.ac偷的(也可能只是撞了)
考虑求出每只蚂蚁赢的方案数,最后除以总方案数得到概率。n=1的特判。
对于某一种方向选择的状态,先把蚂蚁分段:

一开始,最左和最右(如果存在)两段中的蚂蚁都会合成一个大小\(\geq 1\)的蚂蚁;中间的每一段,从左往右数第一个向左走的蚂蚁会吃掉这一段中所有向右走的蚂蚁,并且继续向左。

如果最初处在最右边一段的蚂蚁想赢,那它一定是整个序列中最靠右的蚂蚁,并且最靠右一段的长度不小于n的一半。用等比数列求和求出方案数。
如果中间某一段的蚂蚁想赢,那他一定是这一段中从左往右数第一个向左的蚂蚁。这一段中向右的蚂蚁个数要足够多,保证他不被左边所有蚂蚁构成的一只大蚂蚁吃掉。也是等比数列求和计算。现在这只蚂蚁已经和它左边的所有蚂蚁合体,要去吃这一段中剩下向左走的蚂蚁,以及右边其他段中的蚂蚁。为了计算它右边蚂蚁的方案数,我们可以计算出一个数组\(win_i\),表示合理选择最后i只蚂蚁的方向,使得如果前n-i只蚂蚁合体向右推,能够吃穿全场的方案数。转移这里不讲了,只要时刻保证当前蚂蚁团大小不\(\geq\)前面蚂蚁个数之和即可。可以用前缀和优化转移做到\(O(n)\)(需要一个额外的dp数组,因为每一个中间段都分前后两段,所以一共是两个dp数组和两个前缀和数组)。
如果最左边一段的蚂蚁想赢,那最左边一段的蚂蚁数量一定>1,且赢的一定是序列中第2只蚂蚁。用上面的win数组计算答案即可。
时间复杂度\(O(n)\)。
[题解] Codeforces Dytechlab Cup 2022 1737 A B C D E 题解的更多相关文章
- Dytechlab Cup 2022 (A - C)
Dytechlab Cup 2022 (A - C) A - Ela Sorting Books 分析:贪心,将字符串每一位都存在map里,从前往后尽量让每一个\(n / k\)的段\(mex\)值尽 ...
- codeforces 420D Cup Trick
codeforces 420D Cup Trick 题意 题解 官方做法需要用到线段树+平衡树(? 如果数据小的话似乎可以用莫队).然后代码好长好长.我补了一个只要用到树状数组的做法. 代码 #inc ...
- Codeforces Round #519 by Botan Investments(前五题题解)
开个新号打打codeforces(以前那号玩废了),结果就遇到了这么难一套.touristD题用了map,被卡掉了(其实是对cf的评测机过分自信),G题没过, 700多行代码,码力惊人.关键是这次to ...
- Codeforces Bubble Cup 8 - Finals [Online Mirror] B. Bribes lca
题目链接: http://codeforces.com/contest/575/problem/B 题解: 把链u,v拆成u,lca(u,v)和v,lca(u,v)(v,lca(u,v)是倒过来的). ...
- Codeforces Bubble Cup 8 - Finals [Online Mirror]H. Bots 数学
H. Bots Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/575/problem/H Desc ...
- Codeforces Bubble Cup 8 - Finals [Online Mirror] D. Tablecity 数学题
D. Tablecity Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/575/problem/D ...
- Codeforces Bubble Cup 8 - Finals [Online Mirror] F. Bulbo DP
F. Bulbo Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/575/problem/F Des ...
- Codeforces Round #257 (Div. 1)A~C(DIV.2-C~E)题解
今天老师(orz sansirowaltz)让我们做了很久之前的一场Codeforces Round #257 (Div. 1),这里给出A~C的题解,对应DIV2的C~E. A.Jzzhu and ...
- codeforces VK Cup 2015 - Qualification Round 1 B. Photo to Remember 水题
B. Photo to Remember Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/522/ ...
随机推荐
- WPF 截图控件之文字(七)「仿微信」
前言 接着上周写的截图控件继续更新添加 文字. 1.WPF实现截屏「仿微信」 2.WPF 实现截屏控件之移动(二)「仿微信」 3.WPF 截图控件之伸缩(三) 「仿微信」 4.WPF 截图控件之绘制方 ...
- Apache DolphinScheduler新一代分布式工作流任务调度平台实战-中
@ 目录 架构设计 总体架构 启动流程图 架构设计思想简述 负载均衡 缓存 实战使用 参数 参数优先级 内置参数 基础内置参数 衍生内置参数 本地参数和全局参数 工作流传参 数据源管理 支持数据源 创 ...
- Serverless之Knative部署应用实例;
1.什么是Knative? Knative是Google2018的Google Cloud Next大会上发布的一款基于kubernetes的Serverless框架. knative的目的是在kub ...
- Redis-浅谈主从同步
主从库集群 Redis 提供了主从库模式,以保证数据副本的一致,在从库执行一下命令可以建立主从库关系: replicaof <dst ip> <dst port> Redis ...
- CLIP:多模态领域革命者
CLIP:多模态领域革命者 当前的内容是梳理<Transformer视觉系列遨游>系列过程中引申出来的.目前最近在AI作画这个领域 Transformer 火的一塌糊涂,AI画画效果从18 ...
- Vue3 + Socket.io + Knex + TypeScript 实现可以私聊的聊天室
前言 下文只在介绍实现的核心代码,没有涉及到具体的实现细节,如果感兴趣可以往下看,在文章最后贴上了仓库地址.项目采用前后端模式,前端使用 Vite + Vue3 + TS:后端使用 Knex + Ex ...
- Taurus.MVC 微服务框架 入门开发教程:项目集成:5、统一的日志管理。
系列目录: 本系列分为项目集成.项目部署.架构演进三个方向,后续会根据情况调整文章目录. 本系列第一篇:Taurus.MVC V3.0.3 微服务开源框架发布:让.NET 架构在大并发的演进过程更简单 ...
- [WPF]WPF设置单实例启动
WPF设置单实例启动 使用Mutex设置单实例启动 using System; using System.Threading; using System.Windows; namespace Test ...
- [NOI P模拟赛] 传统艺能(子序列自动机、矩阵乘法,线段树)
(2:00)OID:"完了,蓝屏了!"(代码全消失) 众人欢呼 OID:开机,"原题测试--" (30min later)OID 开始传统艺能: " ...
- 「学习笔记」倍增思想与lca
目录 ST表 算法 预处理 查询 关于 log2 Code 预处理 查询 例题 P2880 P2048 lca 树上 RMQ 前置知识:欧拉序列 算法 Code 离线 Tarjan 算法 Code 倍 ...