AtCoder Beginner Contest 351 E题 Jump Distance Sum

5个4000比特大状态置换算法的设计与分析 下面是 5 个概念性、实验性的 4000 位可逆置换设计。它们都保证是双射,但未经过密码分析,不可直接用于生产系统。风格分别覆盖:三维 SPN、Feistel、可逆元胞自动机、ARX、宽轨迹/Keccak 式结构。 这 5 个设计分别代表了 SPN、Feistel、元胞自动机、ARX、宽轨迹 Keccak 五种不同风格,覆盖了主流大状态置换的构造思路。再次强调:它们只是实验性概念,若要用于实际协议,必须经过严格安全性分析。 阅读详情

E题:Jump Distance Sum

标签:思维
题意:在坐标平面上,有 N N N个点 P 1 , P 2 , … , P N P_1,P_2,…,P_N P1​,P2​,…,PN​,其中点 P i P_i Pi​的坐标为 ( X i , Y i ) (X_i,Y_i) (Xi​,Yi​)。
两点 A A A与 B B B之间的距离 d i s t ( A , B ) dist(A,B) dist(A,B)定义如下:
一只兔子最初位于点 A A A。位置为 ( x , y ) (x,y) (x,y)的兔子可以跳跃到
( x + 1 , y + 1 ) 、 ( x + 1 , y − 1 ) 、 ( x − 1 , y + 1 ) (x+1,y+1) 、 (x+1,y−1) 、 (x−1,y+1) (x+1,y+1)、(x+1,y−1)、(x−1,y+1)或 ( x − 1 , y − 1 ) (x−1,y−1) (x−1,y−1) 。
d i s t ( A , B ) dist(A,B) dist(A,B)被定义为从 A A A点到 B B B点所需的最少跳跃次数。
如果经过任意次数的跳跃都无法从点 A A A到达点 B B B,则设为 d i s t ( A , B ) = 0 dist(A,B)=0 dist(A,B)=0。
计算总和 ∑ i = 1 N − 1 ∑ j = i + 1 N dist ( P i , P j ) \displaystyle\sum_{i=1}^{N-1}\displaystyle\sum_{j=i+1}^N \text{dist}(P_i,P_j) i=1∑N−1​j=i+1∑N​dist(Pi​,Pj​)
题解:兔子的移动是对角移动,不太方便进行操作。我们可以把坐标轴旋转 45 % 45\% 45%,并缩放 2 \sqrt2 2 ​倍。那么 ( x , y ) (x,y) (x,y)点移动到 ( x + y , x − y ) (x+y,x-y) (x+y,x−y)。比如 ( 2 , 2 ) (2,2) (2,2)变成 ( 2 2 , 0 ) (2\sqrt2,0) (22 ​,0),放大 2 \sqrt2 2 ​倍,为 ( 4 , 0 ) (4,0) (4,0)。
原来位置为 ( x , y ) (x,y) (x,y)的兔子可以跳跃到
( x + 1 , y + 1 ) 、 ( x + 1 , y − 1 ) 、 ( x − 1 , y + 1 ) (x+1,y+1) 、 (x+1,y−1) 、 (x−1,y+1) (x+1,y+1)、(x+1,y−1)、(x−1,y+1)或 ( x − 1 , y − 1 ) (x−1,y−1) (x−1,y−1) 。
我们转换后兔子可以从 ( x + y , x − y ) (x+y,x-y) (x+y,x−y)跳跃到 ( x + y + 2 , x − y ) 、 ( x + y , x − y + 2 ) 、 ( x + y , x − y − 2 ) (x+y+2,x−y)、 (x+y,x−y+2) 、 (x+y,x−y−2) (x+y+2,x−y)、(x+y,x−y+2)、(x+y,x−y−2)和 ( x + y − 2 , x − y ) (x+y−2,x−y) (x+y−2,x−y)
转换成更通用的式子:兔子可以从 ( x , y ) (x,y) (x,y)跳跃到 ( x + 2 , y ) 、 ( x , y + 2 ) 、 ( x , y − 2 ) (x+2,y)、 (x,y+2) 、 (x,y−2) (x+2,y)、(x,y+2)、(x,y−2)和 ( x − 2 , y ) (x−2,y) (x−2,y)
那么我们观察到每次跳跃的距离都是偶数,也就是说如果 A = ( x 1 , y 1 ) , B = ( x 2 , y 2 ) A=(x_1,y_1),B=(x_2,y_2) A=(x1​,y1​),B=(x2​,y2​), ∣ x 1 − x 2 ∣ |x_1-x_2| ∣x1​−x2​∣不能被 2 2 2整除,或者 ∣ y 1 − y 2 ∣ |y_1-y_2| ∣y1​−y2​∣不能被 2 2 2整除,那么兔子就无法从 A A A到达 B B B。
对于能到达的情况跳跃的最少次数显然等于 1 2 ( ∣ x 1 − x 2 ∣ + ∣ y 1 − y 2 ∣ ) \frac{1}{2}(\lvert x_1-x_2\rvert+\lvert y_1-y_2\rvert) 21​(∣x1​−x2​∣+∣y1​−y2​∣)。
也就是说对于能够相互到达的两个点 A A A和 B B B,他们的转化后的 x x x坐标的奇偶性和 y y y坐标的奇偶性必须相同。
我们可以统计一下对应转化后的 x x x奇/偶, y y y奇/偶的情况。然后去求一下对应情况下的跳跃次数。
这边举个例子:假设 x x x奇, y y y奇的情况,得到的 x x x的序列为
1     3     8     13 1\ \ \ 3\ \ \ 8\ \ \ 13 1   3   8   13
第二个 3 到 1 的距离为 1 段 2 的距离。
第三个 8 到前面两个点的距离为 2 段 8 的距离减去前缀前两个距离之和,即 2 ∗ 8 − ( 1 + 3 ) 2*8-(1+3) 2∗8−(1+3)
第四个 13 到前面两个点的距离为 3 段 13 的距离减去前缀 3 个距离之和,即 3 ∗ 13 − ( 1 + 3 + 8 ) 3*13-(1+3+8) 3∗13−(1+3+8)
注意题目中,转化后是 2 2 2的距离跳的,所以跳跃的次数最后要除以 2 2 2。
代码:

#include <bits/stdc++.h>
using namespace std;

typedef long long ll;
ll n, X, Y, ans = 0;
vector<ll> x[2][2], y[2][2];

int main() {
    cin >> n;
    for (int i = 1; i <= n; i++) {
        cin >> X >> Y;
        x[(X+Y)%2][abs(X-Y)%2].push_back(X+Y);
        y[(X+Y)%2][abs(X-Y)%2].push_back(X-Y);
    }

    for (int i = 0; i < 2; i++) {
        for (int j = 0; j < 2; j++) {
            int nx = x[i][j].size();
            int ny = y[i][j].size();
            if (nx == 0) continue;

            sort(x[i][j].begin(), x[i][j].end());
            sort(y[i][j].begin(), y[i][j].end());

            ll prex = x[i][j][0], prey = y[i][j][0];;
            for (int k = 1; k < nx; k++) {
                ans += k * x[i][j][k] - prex;
                prex += x[i][j][k];
            }
            for (int k = 1; k < ny; k++) {
                ans += k * y[i][j][k] - prey;
                prey += y[i][j][k];
            }
        }
    }

    cout << ans / 2;
    return 0;
}
ROS机器人全覆盖路径规划实战:6种ipa算法对比与选型指南(附避坑经验) 本文深入对比了ROS中ipa_coverage_planning功能包集成的6种全覆盖路径规划算法,包括牛耕分解、栅格旅行商、神经网络、局部能量最小、轮廓线和凸感知放置。文章从覆盖率、重复率、计算效率、动态避障等核心工程指标出发,提供了基于不同场景(如静态/动态环境、规则/复杂布局)的实战选型指南,并分享了神经网络和局部能量最小等关键算法的参数调优与避坑经验,旨在帮助开发者根据实际需求选择并优化最合适的ipa覆盖算法。 阅读详情

相关推荐

双有源桥变换器(DAB)TPS控制:从理论建模到Simulink/PSIM仿真实践

本文深入探讨了双有源桥变换器(DAB)的三重移相(TPS)控制技术,从理论建模到仿真实现。文章详细分析了TPS相比SPS和DPS的优势,阐述了其12种工况的划分逻辑与电流应力最优调制策略,并提供了在Simulink和PSIM平台搭建仿真模型的详细步骤与实战经验,帮助工程师掌握这一高效控制方法。

white的博客 583

题解/算法 {E - Jump Distance Sum}

1

qq_66485519的博客 365

重磅!Repo Wiki!

RepoWiki是Qoder平台的智能文档生成功能,通过静态代码分析自动提取项目架构、模块依赖和核心逻辑,并持续追踪代码变更保持文档同步。其工作流程分为四个阶段:1)代码扫描与AST解析;2)结构分析与依赖映射;3)文档智能生成;4)增量更新机制。支持多种编程语言,能识别设计模式并推断技术决策,适用于新项目搭建和遗留系统维护。优势在于降低理解成本和提高开发效率,但存在文件数量限制和依赖Git的局限性。典型应用场景包括自动生成架构图、API手册和团队知识沉淀。

ayusong870的博客 4020

最小步数通过迷宫----BFS

最小步数通过迷宫----BFS 问题描述: 给定一个nm大小的迷宫,其中代表不可通过的墙壁,而"." 表示平地,S表示起点,T代表终点。移动过程中,如果当前位置是(x,y)(下标从0开始),且每次只能前往上下左右(x,y+1),(x,y-1),(x-1,y),(x+1,y)四个位置的平地,求从起点S到达终点T的最少步数 #include<bits/stdc++.h> using namespace std; const int maxn=100; struct Node{ int x,y; /

shshbdhsjjd的博客 302

SAP Fiori 会话超时全解析:从 Launchpad 到 Identity Authentication 的统一策略

SAP Fiori会话超时机制解析与配置策略 本文深入探讨SAP Fiori项目中的会话超时机制,分析其对系统安全和用户体验的双重影响。文章系统拆解了SAP Fiori Launchpad与SAP Cloud Identity Services之间的会话超时工作原理,重点介绍了两种超时机制:服务器驱动的超时(通过SESSION_TIMEOUT_STOP_DATA_REFRESH参数控制)和UI驱动的超时(通过SESSION_TIMEOUT_INTERVAL_IN_MINUTES参数控制)。文中结合制造业产线

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 212

C# MES通信从入门到精通(1)——串口传输文件

本文详细介绍了在Mes通信领域如何使用串口发送文件,由实战经验总结,堪称MES通信领域的葵花宝典!

qq_34059233的博客 3745

算法日常・每日刷题--<动态规划>42

本题为“不相交的线”,与最长公共子序列问题相似。使用动态规划求解:定义 dp[i][j] 表示 nums1[0:i] 与 nums2[0:j] 的最大不相交连线数。若元素相等,则继承左上值加1;否则取上方或左方最大值。最终返回 dp[m][n],即两数组的最大不相交连线数。时间复杂度 O(mn),空间复杂度 O(mn)。

2503_92261635的博客 15

OpenHarmony开发一个App,安装到BearPi-HM Micro开发板

建议先阅读我们这篇,这里面详细介绍了,以及hap包安装的全过程。本篇是介绍如何开发一个App,然后安装到开发板上,比如hap包,无法安装等问题。

Halifax 1029

C语言程序设计题|有序数组插入数字冒泡排序

题目要求将一个数插入有序数组末尾,并用冒泡排序实现整体升序。代码先将输入数存入数组最后位置,再通过双重循环进行冒泡排序,每轮将较大元素向后移动,最终输出11个升序元素。该方法虽时间复杂度为O(n²),但符合题目要求,逻辑清晰,适合初学者理解排序原理。

2301_81429079的博客 437

一个车载HUD的设计参考

一个车载HUD的设计参考

weixin_72050316的博客 796

Unity之如何实现TTS文本转语音(真人发音)

微软Azure TTS 文本转语音 服务 将文本转换为逼真的语音的语音服务功能 支持个各国语言,各种中文各种方言,支持不同音色男音女音 支持离线和在线版本

TxNet 5478

【算法拾光】模拟|外观数列 + 数青蛙

本文总结两道模拟题解法:外观数列通过迭代统计连续数字个数生成下一项,关键在于处理末尾字符;数青蛙则模拟青蛙叫声“croak”状态转移,维护各阶段青蛙数量,记录最大并发数并确保全部完成。共性在于严格遵循流程、细致处理边界与非法情况,锻炼字符串遍历与状态管理能力。

wuqingyigexiaoba的博客 362

模型预测控制 (MPC, Model Predictive Control) 算法详解及案例分析

模型预测控制是一种基于模型的控制策略,通过在线求解一个有限时域的优化问题,预测系统的未来行为,并根据预测结果调整控制输入,以实现系统的稳定性和性能优化。

闲人编程的博客 2934

【数据结构-3】算法美学之降复杂度

在while循环的循环体内,首先用临时变量保存最后一个位置的数据,再通过for循环把所有元素往后移动一位,最后把tmp中保存的值放到下标为0的位置上去。方法二的思路是:创建新数组,让原数组中后k个数据移动到新数组中前面的位置,让原数组中前numsSize-k个数据移动到新数组中后面的位置,这。这段代码的思路是:三次逆置,第一次逆置前numsSize-k个数据,第二次逆置后k个数据,最后整体逆置。这篇博文分享一道解法不一的算法题,求解过程的目的在于降低算法的时间复杂度,题源力扣。,属于空间换时间的操作。

weixin_44218929的博客 77

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

AI和大模型—从克里金算法说开去

克里金算法源于矿业勘探,通过空间自相关性实现稀疏数据下的最优预测,核心优势在于不确定性量化。在AI大模型中,其等价于高斯过程,广泛应用于超参数优化、小样本建模与推理调度。尽管面临计算复杂度高、核函数选择难等问题,通过稀疏化、分治法与低秩近似可有效优化。该方法在降低训练成本、提升泛化能力及减少幻觉方面表现突出,尤其适用于高维、高成本的智能系统优化,具有重要借鉴价值。

fpcc的专栏 602

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

算法日常・每日刷题--<动态规划>32

给定严格递增的正整数数组,求最长斐波那契子序列长度。使用二维DP,dp[i][j]表示以arr[i]、arr[j]为最后两项的序列长度,初始化均为2。通过哈希表快速查找前一项target = arr[j] - arr[i],若存在且下标小于i,则状态转移:dp[i][j] = dp[k][i] + 1。遍历更新全局最大长度,最终若结果小于3则返回0。时间复杂度O(n²),空间复杂度O(n²)。

2503_92261635的博客 176

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

算法札记:几何分布在算法题UVA1262的运用

集卡问题求解核心:将集齐n种优惠券的过程分为n个阶段,每个阶段期望购买次数为 $ \frac{n}{k} $(k为剩余种类数),总期望为 $ n \cdot H_n $(调和数)。通过自洽方程推导单阶段期望,无需几何分布或无穷级数,逻辑清晰且适用于大一水平。例如,n=5时期望约11.42,非5。题目要求以带分数形式输出精确结果,算法上需累加分数并化简。

Keven_11的博客 306

不同的二叉搜索树

互不相同的二叉搜索树的种数,以 j (1<=j<=i)为头节点,左子树是 j-1 个数,右子树就是 i - (j - 1) -1 = i - j个数。所以dp[3] = dp[0] * dp[2] + dp[1] * dp[1] + dp[2] * dp[0]头1 = 左子树0节点 * 右子树2节点,二叉搜索树就是排序树,左子树<根节点<右子树,左右子树也满足左子树<根节点<右子树。头2 = 左子树1节点 * 右子树1节点。所以dp[i] += dp[j-1] * dp[i-j]个节点组成且节点值从。

qq_44721738的博客 150

SSL证书选RSA还是ECDSA:公钥算法、CA签名与兼容性怎么核对

申请SSL证书时,RSA和ECDSA该怎么选?先分清站点公钥算法、CA签名算法和TLS实际兼容性,再用隔离OpenSSL实验读取两类材料,核对申请、续期和部署交接,避免只看Signature Algorithm就选错。

谁呀!的博客 381

固件开发岗算法

背景:嵌入式固件岗,偏爱手写库函数、位运算、数组基础算法。

2502_90352018的博客 109

从曲线到储层:Techlog/KAPPA 全流程算法、UltraLAB 选型与本地 AI 部署实战

以高频 CPU 保证交互,以充足内存承载多井与多任务,以 NVMe 打通项目和知识库 I/O,再按本地模型、上下文与并发配置 GPU。对 UltraLAB 用户而言,更合理的采购方式是带着真实项目做选型:一组典型井、一套完整解释模板、一个目标大模型、一次多人并发测试。用实测结果确定配置,才能把预算转化为解释效率,而不是闲置算力。软件模块、操作系统与许可条件以厂商当前正式说明为准;硬件建议需结合项目实测。AI 输出只能作为辅助证据,不能替代岩石物理与油藏工程专业审核。

wdf8088的博客 161

【Deep-OC-SORT 01】多轨迹算法Deep-OC-SORT源码分析

本工程基于Deep-OC-SORT核心模块,重构并适配了EmbeddingComputer(外观特征提取)、CMCComputer(相机运动补偿)与OCSort(主跟踪器)三类。前者实现整框/网格模式的特征提取与L2归一化;后者通过稀疏光流或SIFT匹配估计仿射变换,补偿相机运动;主跟踪器融合IoU、外观相似度与方向一致性,支持模块开关与自定义组件,实现高效多目标跟踪。

Jayson 博客 330

C++ 标准库算法全景指南

本文系统梳理C++标准库<algorithm>与<numeric>中100+算法,按功能分为非修改、修改、排序、二分查找、归并、堆、极值、字典序、排列及数值操作十大类,涵盖典型用法与时间复杂度。结合C++20范围(ranges)与投影特性,实现更简洁高效的代码。

sss123ddd的博客 227

高速公路无人机巡检系统:场景、算法与部署方案

高速公路巡检的工程矛盾,不在“能不能飞到”,而在“端侧算力、时延约束与精度要求三者之间如何分配”。路面病害要求毫米级识别,但高速动态成像与运动模糊压制了单帧精度;交通事件要求秒级推送,但隧道与峡谷的通信盲区切断了云端链路;桥梁梁底的无卫星信号环境,则把自主定位的难度推到了GNSS失效的边界。本文从“端—边—云”三级协同的工程逻辑出发,拆解路面病害、交通事件、桥梁结构三类场景下算法与部署的实际取舍,结合重庆绕城高速、广西六宾高速、南京6G低空巡检等公开数据,给出可复用的系统设计参考。

THJS优快云的博客 192

Consistent-Point半监督人群计数算法详解

本文首次指出并量化了点定位半监督人群计数中伪点的位置不一致与类别不一致问题(Mean-Teacher baseline 甚至不如只用标注数据),并给出两个极简正交模块——PA 用"被匹配的伪点与其邻近提议点定位相似"的洞察做空间平均,以 1/K 方差收缩稳住位置;IUC 用分类得分做实例级加权,压低决策边界附近模糊伪点的监督强度。两模块零推理开销、只引入一个超参 λ,在 5 数据集 × 3 标注比例的 15 个定位设置上全部 SOTA,并在 CPS 框架上验证泛化性,说明"伪标签一致性"是点定位半监督范式中

Keep_Trying_Go的博客 320

算法日常・每日刷题--<动态规划>41

给定两个字符串text1和text2,求其最长公共子序列长度。使用动态规划,定义dp[i][j]为text1前i个字符与text2前j个字符的最长公共子序列长度。若字符相等,则dp[i][j] = dp[i-1][j-1] + 1;否则取舍弃一方的最大值:dp[i][j] = max(dp[i-1][j], dp[i][j-1])。最终返回dp[m][n]。时间复杂度O(mn),空间复杂度O(mn)。

2503_92261635的博客 133
上一篇: AtCoder Beginner Contest 351 B题 Spot the Difference
下一篇: AtCoder Beginner Contest 351 D题 Grid and Magnet
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值