首页 > 其他分享 >EDU172比赛记录

EDU172比赛记录

时间:2024-12-03 13:24:09浏览次数:6  
标签:00 EDU172 比赛 记录 后缀 复杂度 即可 编号 log

第一次 AK edu。

A 00:02 +0

B 00:06 +0

C 00:16 +0

D 00:36 +1

E 01:06 +1

F 01:47 +0

本场比赛都不太好一句话题面,所以就都不写简要题面了。

A.Greedy Monocarp

做法:

显然最优策略不会管选不到的数,如果把某个本来不选的数加到会选是不优的。

排序之后贪心选数,选到不能再选数的时候那操作补差额即可。

B.Game with Colored Marbles

做法:

容易发现出现次数大于 1 的数都选不全但是都能选一个。

正好出现一次的数显然选中就选全了,而且选中的个数一定是 \(\lceil \frac{cnt}{2} \rceil\) 个,其中 \(cnt\) 为出现正好一次的种类数。

C.Competitive Fishing

做法:

尝试刻画分段的过程。

发现从策略上考虑很难做,再尝试从权值的折线图来考虑。

可以发现每次操作都是把一段后缀的权值都 +1 ,所以从每个位置操作的价值都是可以直接计算的。

拿后缀和计算价值,排个序贪心选即可。

D.Recommendations

做法:

实际上求的是每个区间完全包含这个区间的所有区间(除了自己)的交集大小。

这是经典二维数点问题,排个序拿树状数组维护即可,需要注意完全相同的区间所导致的问题。

E.Vertex Pairs

做法:

容易发现选择的最大编号的点编号越小越好。

所以找到选择的最大点是好找的,只需要二分+并查集和启发式合并set即可,找出一个点的时间复杂度 \(O(n \log^3 n)\) 。

显然复杂度不可接受。

同时可以发现找到选的编号最大的点是容易的,只需要扫一遍就行了,时间复杂度 \(O(n \log^2 n)\)。

所以我们可以找出一个一定选的点。

此时可以假设删掉编号比必选点最大的点之后依旧与必选点联通的点都选。再考虑删除一些点。

此时每种颜色都会对应一条到祖先的链必须选的限制。

只需要 set 维护可删点的即可,每次删除可删的编号最大点以及这个点的子树,在删除的过程中需要同时维护每个颜色的必选点限制。

时间复杂度 \(O(n \log^2 n)\) ,实现精细可以做到 \(O(n \log n)\) 。

F.Two Subarrays

做法:

大力线段树。

把 \(a\) 的区间和看作前缀和相减,这时选两段就可以转化成选两对不相交的 \(l,r\) 。

与最大字段和相似的线段树即可维护,每次修改 \(b\) 就是单点修改,修改 \(a\) 就是对后缀的 \(s\) 做加法,讨论一下系数打标记即可。

因为每个点作为 \(l\) 的权值为 \(-s_{l-1}+b_l\) ,在后缀修改的同时对第一项进行修正即可。

标签:00,EDU172,比赛,记录,后缀,复杂度,即可,编号,log
From: https://www.cnblogs.com/sunrise1024/p/18583838

相关文章

  • Pixel 6a 刷机&root记录
    准备工作下载出厂镜像包:https://developers.google.com/android/images?hl=zh-cn#bluejay刷机工具:https://github.com/badabing2005/PixelFlasherRoot工具:https://github.com/topjohnwu/Magisk/releases刷机进入bootloader关机状态下,长按电源键+音量减,进入bootloader后连......
  • 昇腾显卡部署qwen2_5报错记录--持续更新
    24-12-0215:54:56,655[ERROR]model.py:39-[Model]>>>Exception:BuildModelGrapherror,checkATB_LOG,ASDOPS_LOGTraceback(mostrecentcalllast):File“/usr/local/python3.11.10/lib/python3.11/site-packages/model_wrapper/model.py”,line37,in......
  • YOLOv11模型在K230开发板部署过程记录
           当您看到这篇文章时想必您已经完成了模型训练,这里以YOLOv11训练出来的pt模型为例给出模型在K230开发板的部署流程环境:windows11,ubuntu20.04(已安装python,pip),nncase2.9.0,K230开发板1、模型转换        将pt格式转化为onnx格式以便使用nncase工具链进行......
  • [题目记录]一本通高手训练-交换
    题意定义操作如下:用\(0\cdotsn-1\)的一个排列\({q_n}\)交换排列\({s_n}\):对\(s_i\)中的元素进行\(n-1\)次两两交换,第\(i\)次交换\(s_{q_i}\)和\(s_{q_{i+1}}\).当\(s_i=i\)时,求排列\(q_n\)的个数,使得用\(q_n\)交换\(s_n\)得到给定的排列......
  • 【windows工作合集】 远程连接出现问题记录
    问题记录:由于需求要登录本地windows的虚拟机但是在输入用户信息/密码都正确的情况下出现上面截图的问题于是就百度进行查阅解决--主要就是说我这边机器可能是因为系统更新或者一些注册表的问题导致信息对不上,所以被认为无法登录(系统更新。微软系统补丁的更新将CredSSP身份......
  • 微信好友聊天记录删除怎么恢复?5个恢复实用方法总有一款适合您
    在清理微信的聊天框时,不小心把和好朋友的聊天记录全删除了!这种情况在日常使用微信的过程中时有发生,还让人倍感焦虑。但其实我们还有多种方法可以尝试恢复。本文将为您逐一揭秘,总有一款适合您。方法一、使用微信的故障修复工具微信内置了一个【故障修复】功能,可以帮助用户解......
  • 大数据学习记录,Python基础(4)
    函数引言:比如植物大战僵尸,这个游戏本身也是由代码编写,现在假设有一种豌豆射手,每发射一次炮弹会执行100行逻辑代码如果我在程序,每当需要发射炮弹的时候,都要编写100行逻辑代码,就会觉得该程序过于冗余,代码重复度较高。解决方案:如果我将这100行代码放到一个区域中,然后给这个区域......
  • AGC032 VP记录
    A17:35+0B39:51+0C80:28+4A.LimitedInsertion简要题面:最初有一个空序列,每次操作选定一个\(i\)并把\(i\)插入到位置\(i\),给定最终序列,构造一种合法方案或者输出-1。\(n\leq100\)做法:简单思考发现每次操作出来的数一定从后往前对应了最终序列中的相同数。......
  • 记录---前端实现画中画超简单,让网页飞出浏览器
    ......
  • 物理套卷练习记录
    20242024Nov12024.11.262024南通如皋高三上学期第一次教学质量检测——【练习】81【总结】基本上是统一进度的试卷,但错了很多简单题。电容的定义式为\(C=\frac{Q}{U}\),其中,\(Q\)指平行电容器一个极板所带电荷量的绝对值。【传送门】https://www.doc88.com/p-9572988......