ABC351E

news/2024/10/15 22:29:00

E - Jump Distance Sum

题意简述

Just it.

思路

兔子斜着走->国际象棋里的象->黑象只能到达黑格,白象只能到达白格(横纵坐标相加的奇偶性)。

将点分成两组,则每组内的点之间都有答案。

可以发现可以先朝着那个方向斜着走,然后超出的部分向着那个方向迂回是最优的。如图

image-20240501075813092

不难发现距离是 \(\max(x_1-x_2,y_1-y_2)\),这就是切比雪夫距离。

根据公式转曼哈顿:\(x_1'=(x_1+x_2)\div2,x_2'=(x_1-x_2)\div2\)

可以把所有距离 \(\times 2\),最后把 \(ans\div2\),这样就不会出现小数了,即 \(x_1'=x_1+x_2,x_2'=x_1-x_2\)

我们需要求的就是每组内部两两之间的曼哈顿距离的总和。

横纵坐标独立,直接拆掉。

贡献没有顺序,可以排序,去掉绝对值。

然后如:\(1,2,3,4,5\)

\(2-1\)

\(3-1+3-2\)

\(4-1+4-2+4-3\)

\(5-1+5-2+5-3+5-4\)

不难发现对于第 \(i\) 个数,记前 \(i-1\) 个数的和为 \(sum\),答案为 \(x_i\times(i-1)-sum\)\(sum\) 用前缀和维护即可。

\(O(n\log n)\)

https://atcoder.jp/contests/abc351/submissions/52980476

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

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

相关文章

[转帖]SQL Server 锁机制 悲观锁 乐观锁 实测解析

https://www.cnblogs.com/taiyonghai/p/5674462.html 先引入一些概念,直接Copy其他Blogs中的,我就不单独写了。 一、为什么会有锁 多个用户同时对数据库的并发操作时会带来以下数据不一致的问题: 1.丢失更新 A,B两个用户读同一数据并进行修改,其中一个用户的修改结果破坏了另…

监控java程序启动时的CPU使用情况

监控java程序启动时的CPU使用情况背景 想关注一下 java 程序启动过程中的CPU整体使用 以及启动过程中GC的次数和GC的好是等情况之前使用actuator的方式这里行不通 因为还没有最终暴露服务使用agent的方式虽然那可以暴露启动过程 但是也存在一些其他的问题 比如无法健康hikari,r…

2024年4月总结及随笔之多事之月

2024年4月总结及随笔之多事之月1. 回头看 日更坚持了486天。读《所罗门的密码》更新完成 读《天才与算法:人脑与AI的数学思维》开更并持续更新中2023年至2024年3月底累计码字1081378字,累计日均码字2225字。 2024年4月码字87695字,同比增长52.5%,环比下降7.5%,日均码字数2…

华夏芯产品技术概述

华夏芯产品技术概述GPTX1 CPU 概述: GPTX1 CPU是华夏芯完全自主知识产权、自主架构的面向嵌入式的高能效CPU核。此CPU核依托Unity指令集,针对先进半导体工艺对微架构和流水线进行了深度优化,能够在相同工艺下达到更高的主频和更高的能效,应用于网络、通讯、数字电视、存储等…

基于gitee WebHook完成代码提交就触发Jenkins自动构建

基于gitee WebHook完成代码提交就触发Jenkins自动构建 1 在Jenkins安装 gitee插件。2:关联gitee的私有令牌跟Jenkins的关系。3: 配置全局gitee全局token4 配置gitee令牌:5:新建项目,配置gitee地址,账号密码。关联webHook,自动构建代码。** ​ 新建项目:6 配置gitee…

树的递归遍历

数据结构 树--递归遍历/****************************************************************************** function name :BinaryTree_CountNode* function : 计算一颗二叉树的所有节点的数量,可以采用递归实现* parameter :* @root…

二叉树(数据结构)——利用“递归”思想实现相关算法问题

题目一//计算一颗二叉树的所有节点的数量,可以采用递归实现 int BinaryTree_CountNode(Tnode_t *root) {int n1,n2; //n1用于记录左子树的节点,n2用于记录右子树的节点//递归函数先提前写好终止条件if (NULL == root){return 0;}//假设采用后序遍历来计算二叉树的节点数量n1 =…

sqlilabs通关04-挑战篇:less54-

通过 SQL 注入工具 sqlilabs 的挑战 54 到 57,使用不同的闭合符号进行注入尝试,并成功获取数据库版本、表名、列名和数据记录。less54 ​​提示的大致意思是:如果你不能在十次内注入成功,那么,表名、列名、数据就会刷新。需要先在url中传递id参数进行注入尝试,然后获得密…