2024百度之星题解 T2跑步
原题链接:跑步
关键词:数学、推公式、lcm、乘法逆元
算法分析:环形跑道相遇次数计算问题
一、最浅显性质分析
- 性质 a:跑 $ m = \text{lcm}{i|i \in [1,n]} $ 分钟。
- 其中 $ \text{lcm} $ 表示最小公倍数,$ m $ 为所有 1 到 n 的数的最小公倍数,确保时间足够覆盖所有周期。
- 性质 b:相遇一定是跑的快的追上跑得慢的。
二、根据性质 b 推导公式
设定条件:
设设 $ \forall i,j \in [1,n] $ 且 $ i > j $,即 $ j $ 跑的比 $ i $ 快。
相遇时间推导:
- 当 $ 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}
$
三、优化计算思路
- 重复计算优化:
对于每个 $ 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
$
四、计算复杂度分析
- **求最小公倍数 **** **:
传统方法:对每个数分解质因数,时间复杂度 $ O(n\sqrt{n}) $,效率较低。
优化思路:对于 1~n 的数,每个质因数 $ p $ 的最大指数为 $ \log_p n $,直接计算各质因数的最高次幂,时间复杂度 $ O(1) $(宏观分析)。
- 线性求解逆元:
- 用于分数计算优化,时间复杂度 $ O(n) $。
- 线性求多项式:
- 基于优化后的系数公式,遍历 1~n 计算各项贡献,时间复杂度 $ O(n) $。
总结
通过分析相遇性质、推导公式、优化重复计算及复杂度分析,该问题可通过线性时间算法解决,核心在于利用最小公倍数确定时间范围,并通过系数分解避免重复计算。
2024百度之星题解 T2跑步的更多相关文章
- 2014 百度之星 题解 1004 Labyrinth
Problem Description 度度熊是一仅仅喜欢探险的熊,一次偶然落进了一个m*n矩阵的迷宫,该迷宫仅仅能从矩阵左上角第一个方格開始走,仅仅有走到右上角的第一个格子才算走出迷宫,每一次仅仅能 ...
- 2018百度之星资格赛T2 子串查询
[题解] 很容易想到暴力做法:对于每个询问暴力查找区间内的最小字母,统计其出现次数.效率O(N^2),无法通过全部数据. 我们可以换一个思路,设f[i][j]为第i个字母(字母‘A'到’Z'分别对应0 ...
- 2014 百度之星题解 1002 - Disk Schedule
Problem Description 有非常多从磁盘读取数据的需求,包含顺序读取.随机读取.为了提高效率,须要人为安排磁盘读取.然而,在现实中,这样的做法非常复杂.我们考虑一个相对简单的场景. 磁盘 ...
- 百度之星初赛(A)——T2
数据分割 小w来到百度之星的赛场上,准备开始实现一个程序自动分析系统. 这个程序接受一些形如x_i = x_jxi=xj 或 x_i \neq x_jxi≠xj 的相等/不等约 ...
- 2016百度之星 初赛2A ABEF
只做了1001 1002 1005 1006.剩下2题可能以后补? http://acm.hdu.edu.cn/search.php?field=problem&key=2016%22%B0% ...
- 2016百度之星 资格赛ABCDE
看题:http://bestcoder.hdu.edu.cn/contests/contest_show.php?cid=690 交题:http://acm.hdu.edu.cn/search.php ...
- 百度之星B题(组合数)
Problem B Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) Total ...
- 【HDU】6110 路径交(2017百度之星) 线段树+RMQ-LCA+树链的交
[题目]2017"百度之星"程序设计大赛 - 初赛(A) [题意]给定n个点的带边权树,m条编号1~m的路径,Q次询问编号区间[L,R]所有链的交集的长度.n<=500000 ...
- 【百度之星2014~复赛 解题报告~正解】The Query on the Tree
声明 笔者最近意外的发现 笔者的个人网站http://tiankonguse.com/ 的很多文章被其它网站转载,但是转载时未声明文章来源或参考自 http://tiankonguse.com/ 网站 ...
- 百度之星2017初赛A-1005-今夕何夕
今夕何夕 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submis ...
随机推荐
- GFast开发MCP服务器之mark3labs/mcp-go库接入(一)
这将是一个系列文章,我们将从简到繁开发一套基于GFast框架下MCP服务工具 github.com/mark3labs/mcp-go介绍 github.com/mark3labs/mcp-go 是一个 ...
- NB!一款基于java开发的漏洞检测工具,集合了泛微、用友、大华、海康、致远、红帆、万户、帆软等漏洞
1.工具介绍 基于 https://github.com/yhy0/ExpDemo-JavaFX 上添加poc 2.工具下载链接: 工具下载:工具下载 3.新增检测漏洞 用友NC-Cloud系统接口g ...
- 代码随想录第七天 | Leecode 454.四数相加II 、383. 赎金信 、15. 三数之和 、18. 四数之和
Leecode 454. 四数相加II 题目链接:https://leetcode.cn/problems/4sum-ii/ 题目描述 给你四个整数数组 nums1.nums2.nums3 和 num ...
- 【HUST】代数学|理想的分解习题
以下内容中,背景知识部分尽数由GPT生成,生成的方式是直接对问题进行提问,存在错误的小节我已经标注,不保证不存在其他错误. 习题部分是GPT生成后,我将看不懂的地方自己重写了一遍的结果.不保证完全正确 ...
- 内网私仓全流程搭建记录(一)-Nexus3环境搭建
1.部署 1)在https://help.sonatype.com/repomanager3/product-information/download中下载对应环境及版本,此处要求3以上版本,本次以& ...
- JS 原型链的终点
从对 js 原型和原型链查找的特性, 我们知道了两个最为重要的结论: 函数对象天生存在 prototype 属性, 它是一个对象, 而它的 constructor 属性指回 函数自身 构造函数的 pr ...
- 网络编程:UDP connect连接
UDP connect的作用 UDP connect函数的调用,并不会引起像TCP连接那样,和服务器目标端网络交互,并不会触发所谓的"握手"报文发送和应答. UDP套接字进行con ...
- 来个好玩的,用手机随时随地指挥你的 Cursor!
告别束缚,用手机随时随地指挥你的 Cursor! 嘿,各位 Cursor 的忠实用户和效率达人们! 你是否曾经遇到过这样的场景:人不在Mac旁边,却突然灵感迸发,想要让 Cursor 帮你写点代码.整 ...
- Ocelot和Consul 实现网关API 服务注册 负载均衡
Ocelot是一个用.NET Core实现并且开源的API网关,它功能强大,包括了:路由.请求聚合.服务发现.认证.鉴权.限流熔断.并内置了负载均衡器与Service Fabric.Butterfly ...
- 使用 frp 进行内网穿透
frp 是一个开源的内网穿透工具,可以使外网设备访问内网防火墙后的设备/服务器. 比如可以买一个 99元/年 的阿里云低配 ECS,然后把自己相对高配的旧电脑放在家里. 家里的旧电脑通过 frp 连上 ...