原题链接:跑步

关键词:数学、推公式、lcm、乘法逆元

算法分析:环形跑道相遇次数计算问题

一、最浅显性质分析

  1. 性质 a:跑 $ m = \text{lcm}{i|i \in [1,n]} $ 分钟。
  • 其中 $ \text{lcm} $ 表示最小公倍数,$ m $ 为所有 1 到 n 的数的最小公倍数,确保时间足够覆盖所有周期。
  1. 性质 b:相遇一定是跑的快的追上跑得慢的。

二、根据性质 b 推导公式

  1. 设定条件

    设 $ \forall i,j \in [1,n] $ 且 $ i > j $,即 $ j $ 跑的比 $ i $ 快。

  2. 相遇时间推导

  • 当 $ j $ 套 $ i $ 一圈时,满足:

$

\frac{t}{j} - \frac{t}{i} = 1

$

解得相遇一圈的时间:

$

t = \frac{i \cdot j}{i - j}

$

  • 在 $ m $ 分钟内,$ i $ 和 $ j $ 相遇的次数为:

$

\frac{m}{t} = \frac{m(i - j)}{i \cdot j} = \frac{m}{j} - \frac{m}{i}

$

三、优化计算思路

  1. 重复计算优化
  • 对于每个 $ x $(表示第 $ x $ 个人):

    • 有 $ x-1 $ 个人比 $ x $ 快,对应 $ -\frac{m}{x} $ 的系数为 $ x-1 $;

    • 有 $ n-x $ 个人比 $ x $ 慢,对应 $ \frac{m}{x} $ 的系数为 $ n-x $;

  • 综上,$ \frac{m}{x} $ 的总系数为:

$

(n - x) - (x - 1) = n - 2x + 1

$

四、计算复杂度分析

  1. **求最小公倍数 **** **:
  • 传统方法:对每个数分解质因数,时间复杂度 $ O(n\sqrt{n}) $,效率较低。

  • 优化思路:对于 1~n 的数,每个质因数 $ p $ 的最大指数为 $ \log_p n $,直接计算各质因数的最高次幂,时间复杂度 $ O(1) $(宏观分析)。

  1. 线性求解逆元
  • 用于分数计算优化,时间复杂度 $ O(n) $。
  1. 线性求多项式
  • 基于优化后的系数公式,遍历 1~n 计算各项贡献,时间复杂度 $ O(n) $。

总结

通过分析相遇性质、推导公式、优化重复计算及复杂度分析,该问题可通过线性时间算法解决,核心在于利用最小公倍数确定时间范围,并通过系数分解避免重复计算。

2024百度之星题解 T2跑步的更多相关文章

  1. 2014 百度之星 题解 1004 Labyrinth

    Problem Description 度度熊是一仅仅喜欢探险的熊,一次偶然落进了一个m*n矩阵的迷宫,该迷宫仅仅能从矩阵左上角第一个方格開始走,仅仅有走到右上角的第一个格子才算走出迷宫,每一次仅仅能 ...

  2. 2018百度之星资格赛T2 子串查询

    [题解] 很容易想到暴力做法:对于每个询问暴力查找区间内的最小字母,统计其出现次数.效率O(N^2),无法通过全部数据. 我们可以换一个思路,设f[i][j]为第i个字母(字母‘A'到’Z'分别对应0 ...

  3. 2014 百度之星题解 1002 - Disk Schedule

    Problem Description 有非常多从磁盘读取数据的需求,包含顺序读取.随机读取.为了提高效率,须要人为安排磁盘读取.然而,在现实中,这样的做法非常复杂.我们考虑一个相对简单的场景. 磁盘 ...

  4. 百度之星初赛(A)——T2

    数据分割 小w来到百度之星的赛场上,准备开始实现一个程序自动分析系统. 这个程序接受一些形如x_i = x_jx​i​​=x​j​​ 或 x_i \neq x_jx​i​​≠x​j​​ 的相等/不等约 ...

  5. 2016百度之星 初赛2A ABEF

    只做了1001 1002 1005 1006.剩下2题可能以后补? http://acm.hdu.edu.cn/search.php?field=problem&key=2016%22%B0% ...

  6. 2016百度之星 资格赛ABCDE

    看题:http://bestcoder.hdu.edu.cn/contests/contest_show.php?cid=690 交题:http://acm.hdu.edu.cn/search.php ...

  7. 百度之星B题(组合数)

    Problem B Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total ...

  8. 【HDU】6110 路径交(2017百度之星) 线段树+RMQ-LCA+树链的交

    [题目]2017"百度之星"程序设计大赛 - 初赛(A) [题意]给定n个点的带边权树,m条编号1~m的路径,Q次询问编号区间[L,R]所有链的交集的长度.n<=500000 ...

  9. 【百度之星2014~复赛 解题报告~正解】The Query on the Tree

    声明 笔者最近意外的发现 笔者的个人网站http://tiankonguse.com/ 的很多文章被其它网站转载,但是转载时未声明文章来源或参考自 http://tiankonguse.com/ 网站 ...

  10. 百度之星2017初赛A-1005-今夕何夕

    今夕何夕 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submis ...

随机推荐

  1. 腾讯出品!这款Markdown神器让你码字效率翻倍,双模式编辑太香了!

    嗨,大家好,我是小华同学,关注我们获得"最新.最全.最优质"开源项目和高效工作学习方法 由腾讯开源的CherryMarkdown编辑器,集思维导图式大纲写作与专业分屏模式于一身,支 ...

  2. 『Plotly实战指南』--交互功能进阶篇

    在数据可视化的世界中,交互性是提升用户体验和数据探索效率的关键.从简单的悬停提示到复杂的动态数据更新,交互功能让静态图表变得生动起来. 本文将介绍Plotly的高级交互功能,包括点击事件处理.动态数据 ...

  3. maven配置jdk版本

    修改默认的jdk版本 在maven安装目录 apache-maven-3.6.1\conf\setting.xml 添加 <profile> <id>jdk18</id& ...

  4. jsp 输入out.println()报错

    jsp 输入out.println()报错,输入out.后没有代码提示,println()报红. 可以看看有没有导包jsp-api. <dependency> <groupId> ...

  5. 将数据导出 Excel 并异步发送到指定邮箱:一次性能优化实战

    使用 Spring Boot 实现 Excel 导出 + 邮件异步发送功能,解决接口阻塞问题 一.背景介绍最近我在开发一个跑团管理系统的数据导出功能,需求是将用户查询的成员信息.跑量统计等数据导出为 ...

  6. dom绑定事件操作

    s7.html <!DOCTYPE html><html lang="en"><head>    <meta charset=" ...

  7. vue3 基础-样式绑定语法

    本篇讲 vue 通过数据去进行 dom 样式的绑定操作, 主要分为 字符串, 数组, 对象等方式, 这个非常好理解, 凭着我们朴素的情感就能一步领悟到位的, 就还是演示一段吧. 字符 & 数组 ...

  8. 2025第一届轩辕杯Misc详解

    Terminal Hacker 一步到位 flag{Cysay_terminal_game_hacked_successfully} 哇哇哇瓦 foremost分离 GekkoYoru 随波逐流检测, ...

  9. React-Native开发鸿蒙NEXT-蓝牙与图片处理的更正补充

    .markdown-body { line-height: 1.75; font-weight: 400; font-size: 16px; overflow-x: hidden; color: rg ...

  10. Socket实战与应用

    1: Socket之序列化; 让对象能够通过socket进行传输 服务端: 1 package com.lv.study.am.first; 2 3 import java.io.ObjectOutp ...