ABC353 | 如同流星划过天空

news/2024/9/26 6:41:13

ABC353 | 如同流星划过天空

A. & B.

依题意模拟即可。

C.

注意只有 \(f(x,y)\) 需要对 \(10^8\) 取模,\(f\) 的求和不需要。

关注到 \(a_i \in [1,10^8)\),故 \(a_i + a_j \in [2,2 \times 10^8)\)

从而 \(f(x,y)=[x+y<10^8](x+y)+[x+y\ge 10^8](x+y-10^8) = x+y -10^8[x+y\ge 10^8]\)

只需统计有序对 \((i,j)\) 使 \(a_i + a_j \ge 10^8\) 的对数即可。

枚举 \(i\)\(j\) 的个数是在值域上一个后缀和,容易做到 \(O(n)\)

\(\color{green}{\checkmark}\)

D.

把式子变形成 \(f(x,y)=x\times 10^{\lceil\log_{10}y\rceil}+y\),然后拆和式即可用缀和优化。

\(\color{green}{\checkmark}\)

E.

多串 LCP 让我们想到 Trie 树。

考虑将 \(f(x,y)\) 的贡献挂在 \(y\) 上。

考虑在 Trie 树上插入的过程,每次匹配一位,我们就将在当前位失配字符串数乘上匹配长度贡献给答案即可。

\(\color{green}{\checkmark}\)

F. \(\color{#DB7D74}{\star}\)

感受那股劲。

先感受一下,曼哈顿距离是可能的答案。当 \(k=1\) 时这就是答案。

\(k>1\) 时,考虑大格子会对答案产生什么影响。

感受一下,随着 \(k\) 变大,最优方案直接穿过 \(k\times k\) 的小格子的个数断然不增。因为我们能从大格子绕路。

用一下官方题解的图:

\(k\) 较大时,通过左边这种方式绕路代替直接穿过是更优的。具体计算知,当 \(k=2\) 时,直接穿过更优,\(k>2\) 时,绕路更优。

那就做完了。

\(\color{green}{\checkmark}\)

G.

dp,\(f_{i,j}\) 表示已经考虑了 \([0,i)\) 的交易,目前位于 \(j\) 城市。

考虑第 \(i\) 个交易 \((T,p)\) 的转移。

首先要有 \(f_{i+1}=f_i\),含义是原地不动。

然后是 \(f_{i+1,T}=\max\limits_{j\in[0,n)}\{f_{i,j}-|j-T|\times C\}+p\)

把绝对值拆开,变形:\(f_{i+1,T}=\max\{\max\limits_{j\in[0,T)}\{f_{i,j} +jC\}-TC+p,\max\limits_{j\in[T,n)}\{f_{i,j}-jC\}+TC+p\}\)

考虑用数据结构优化转移,发现我们要做的是单点修改,求前后缀最大值,开两颗 BITS 分别维护 \(f_{i,j} \pm jC\) 即可。

注意由于答案是 \(\max{f_{i,j}}\),所以不能在 BITS 上查全局最大值作为答案,要把每次转移时计算出的 \(f_{i+1,T}\) 取最大值作为答案。

\(\color{green}{\checkmark}\)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/30573.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

代码随想录算法训练营第四天 | 24.两辆交换链表中的节点

23.两两交换链表中的两个节点 题目链接 文章讲解 视频讲解时间复杂度 o(n) 空间复杂度 o(1)tips: 画图,并将每一步操作用伪代码写出来,然后将代码理顺可以避免修改代码的麻烦 初始化的时候就要将previous初始化为current的前一个节点,这样可以保证循环的第一步满足循环要求c…

CSRF(原理)

CSRF是什么?Cross-site request forgery 简称为“CSRF”,在CSRF的攻击场景中攻击者会伪造一个请求(这个请求一般是一个链接),然后欺骗目标用户进行点击,用户一旦点击了这个请求,整个攻击就完成了。所以CSRF攻击也成为"one click"攻击。 很多人搞不清楚CSRF的概…

XXE漏洞(Pikachu)

原理 要补好多知识~XXE漏洞全称XML External Entity Injection 即XML外部实体注入。 XXE漏洞发生在应用程序解析XML输入时,没有禁止外部实体的加载,导致可加载恶意外部文件和代码,造成任意文件读取、命令执行、内网端口扫描、攻击内网网站、发起Dos攻击等危害。 XXE漏洞触发…

平均汇总(Power Pivot)

问题:如何在数据透视表中显示类似列总计的平均汇总?解决:在数据模型中添加列Dax公式:=SUMX(区域,区域[数量]*(区域[物料编码]=earlier(区域[物料编码])))/distinctcount(区域[日期 (月)])数据透视表布局: 行字段:物料编码、平均 列字段:组后为月的日期 值字段:数量 其他…

基于webapi的websocket聊天室(三)

上一篇处理了超长消息的问题。我们的应用到目前为止还是单聊天室,这一篇就要处理的多聊天室的问题。 思路第一个问题,怎么访问不同聊天室这个可以采用路由参数来解决。我把路由设计成这样/chat/{room}。访问不同路径就代表进入不同聊天室。第二个问题,怎么创建不同的聊天室原…

越权漏洞(Pikachu)

原理 该漏洞是指应用在检查授权时存在纰漏,使得攻击者在获得低权限用户账户后,利用一些方式绕过权限检查,访问或者操作其他用户或者更高权限。越权漏洞的成因主要是因为开发人员在对数据进行增、删、改、查询时对客户端请求的数据过分相信而遗漏了权限的判定,一旦权限验证不…

同单元格内计算加号个数

问题:一个单元格内若干个加号,计算其个数 函数公式解决:传统套路 =LEN(A2)-LEN(SUBSTITUTE(A2,"+",)) 新套路 =COUNTA(TEXTSPLIT(A2,"+"))-1 正则套路 =COUNTA(REGEXP(A2,"[^+]"))-1

rdp利用技巧总结

近期在项目中管理员在rdp挂载之后搞掉了管理员,想着有时间就整理下针对rdp的利用方法。针对挂盘的利用方法复制文件这个不多说,可以根据的不同的挂盘来决定是拖文件还是放启动项。有一些自动文件监控和拷贝的应用,如:https://github.com/cnucky/DarkGuardianDarkGuardian是一…