题解:P11600 『Fwb』流星の陨落

news/2025/1/22 16:36:39/文章来源:https://www.cnblogs.com/lichenxi111/p/18686373

『Fwb』流星の陨落

题目描述

流星雨来了!

当然,这场流星雨确确实实是 Fwb 设计的。Fwb 在天空中放置了许多的流星,同时也在地面上放置了许多的烟花。当流星和烟花发生碰撞时,就会出现美丽而独特的风景。

由于方便控制流星雨的发射,流星的发射是有规律的,这个发射的规律叫做流星间隔。我们把地面上烟花的摆放看作一个数轴,若流星间隔是 \(k\),那么在 \(i\) 位置发射一颗流星后,下一个发射流星的位置必须是 \(i+k\)。特殊的,第一个发射流星的位置必须是 \(1\)

为了使流星雨好看,保证每一个烟花都会和流星碰撞,即每一个烟花的位置都会有流星发射。但不保证每一个流星都有可碰撞的烟花。为了尽可能减少资源消耗,发射的流星应在满足条件的前提下最少,现在想请你算出,发射的流星雨中最少有多少颗流星以及此时的流星间隔是多少。

输入格式

输入的第一行包含一个正整数 \(n\),代表地上共放置了 \(n\) 个烟花。

第二行共 \(n\) 个正整数,代表烟花在数轴上的位置 \(a_i\)(保证 \(a_i\) 递增)。默认最后一个烟花的位置为数轴的尽头,即保证在位置 \(i\)\(i>a_n\))不会再有流星发射。

输出格式

输出共一行,包含两个正整数,分别表示流星雨中最少的流星数量以及此时的流星间隔。

样例 #1

样例输入 #1

5
1 3 5 7 9

样例输出 #1

5 2

样例 #2

样例输入 #2

7
10 13 19 301 304 307 3004

样例输出 #2

1002 3

样例 #3

样例输入 #3

3
2 1000000 1234567

样例输出 #3

1234567 1

提示

【样例 1 解释】

当流星间隔为 \(2\) 时,流星会发射在 \([1,3,5,7,9]\) 的位置,恰好覆盖所有的烟花。此时发射的流星数量最少为 \(5\)

【数据范围】

对于所有的测试数据,保证:

  • \(1\le n\le 10^5\)
  • 对于任意的 \(i\)\(1\le i\le n\)),都有 \(1\le a_i\le 10^9\)
测试点 \(n=\) \(a_i\le\) 特殊性质
\(1\) \(1\) \(10\)
\(2\) \(10^5\) \(10^9\) A
\(3,4\) \(10^5\) \(10^9\) B
\(5,6,7\) \(10\) \(10^9\) C
\(8,9,10\) \(10^5\) \(10^9\)

特殊性质 A:保证 \(a_i=a_{i-1}+1\)\(1<i\le n\))。

特殊性质 B:保证 \(a_i-a_{i-1}=a_{i+1}-a_i\)\(1<i<n\))。

特殊性质 C:保证至少出现一次 \(a_i-a_{i-1} \le 10^4\)\(2\le i\le n\))。

题目保证不出现 \(n=1\)\(a_1=1\) 的情况。

前言

比较简单,怎么感觉比 T1 简单(?

思路

求最少需要的流星可以转化为求最大可能的间隔。

发现最优策略是间隔取相邻烟花距离的最大公因数

然后流星数用等差数列项数公式求得,即设首项为 \(x\)(本题为 \(1\)),尾项为 \(y\),公差为 \(d\),项数为 \(\dfrac{y - x}{d} + 1\)

代码

#include<bits/stdc++.h>
using namespace std;
int last = 1,x;
int main()
{int n;cin >> n;int t = 0;for(int i = 1;i <= n;i++){cin >> x;if(x == last){continue;}if(t == 0){t = x - last;last = x;continue;}t = __gcd(x - last,t);last = x;}cout << (x - 1) / t + 1 << " " << t;return 0;
}

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

折腾笔记[10]-使用rust进行ORB角点检测

打包ORB算法到bye_orb_rs库,使用rust进行ORB角点检测. Package the ORB algorithm into the bye_orb_rs library, and use Rust for ORB corner detection.摘要 打包ORB算法到bye_orb_rs库,使用rust进行ORB角点检测. Package the ORB algorithm into the bye_orb_rs library, a…

DBSyncer开源数据同步中间件

一、简介 DBSyncer(英[dbsɪŋkɜː(r)],美[dbsɪŋkɜː(r) 简称dbs)是一款开源的数据同步中间件,提供MySQL、Oracle、SqlServer、PostgreSQL、Elasticsearch(ES)、Kafka、File、SQL等同步场景。支持上传插件自定义同步转换业务,提供监控全量和增量数据统计图、应用性能预…

幻想 实在 自我

小 C 和 小 Y 的故事还未停止 …… 或许不会停止弥晨时间仓促,如有错误欢迎指出,欢迎在评论区讨论,如对您有帮助还请点个推荐、关注支持一下

AT+CSQ 和 AT+QENG查询的 RSSI不一致

1. 查询结果如下:2. CSQ查询的RSSI 接收信号强度指示时是31,对应但是 AT+QENG查询的是-128

记录printf的一个小问题

因为打算使用sprintf来格式化字符串,然后显示,遇到了一个符号类型的问题 printf("%d",now_adc);这一句,如果now_adc是uchar类型,输出字符会显示异常,后来了解到,如果要直接打印uchar只能用%x或者%s 所以如果不想改变量大小可以在前面加括号强转如printf("…

工业人工智能白皮书2025年:边缘AI驱动,助力新质生产力报告汇总PDF洞察(附原数据表)

原文链接:https://tecdat.cn/?p=38940 在当前科技变革的浪潮中,工业领域正经历着深刻转型。人工智能与工业互联网等前沿技术的迅猛发展,为工业的升级演进带来了前所未有的机遇与挑战。 本报告汇总洞察聚焦工业领域的变革趋势,深入剖析其核心驱动力与发展脉络。通过对工业 …

【视频】R语言支持向量分类器SVM原理及房价数据预测应用及回归、LASSO、决策树、随机森林、GBM、神经网络对比可视化

全文链接: https://tecdat.cn/?p=38830 原文出处:拓端数据部落公众号 分析师:Yuqi Liu 在大数据时代,精准的数据分类与预测对各领域的发展至关重要。超平面作为高维空间中的关键概念,可将线性空间一分为二,为数据分类奠定了理论基石。基于此发展而来的最大边缘分类器,…

【信息化】一个IT主管/经理/总监的该做什么?-读图解 CIO 工作指南上半IT管理总结

在这个IT人日益技术焦虑的年代,为了缓解一下学习的焦虑,看各路推荐开始学习一下《图解CIO工作指南》。我的初衷很简单,学习一下IT架构设计的思路,日常IT管理工作怎么优化,以及未来MBA毕业写IT规划论文。 一开始,当我拿到这本看似“老旧”的书籍时,心里确实犯了点嘀咕…

LCD-RGB屏幕学习(二)ESP32驱动RGB屏幕

ESP32是国内比较火的IOT芯片厂商,在个人玩家圈子里备受好评1.器件准备40pin RGB 通用接口屏幕这里的通用接口指的是市面上最常见的接口,并不属于某种标准 我拆开了吃灰已久的树莓派便携HDMI屏幕,在屏库上查看此型号,刚好满足需求,又剩下一笔大洋ESP32N16R8选用带有pasram的…

OM6621F低功耗低成本蓝牙芯片支持BLE5.1和2.4G私有协议集成了电源管理单元(PMU)BMS电池管理领域首选方案

OM6621Fx是一款专为蓝牙低功耗和专有2.4GHz应用设计的功率优化的真系统级芯片(SOC)解决方案。它集成了高性能和低功率的射频收发器,具有蓝牙基带和丰富的外围I0扩展。OM6621Fx还集成了电源管理单元(PMU),以实现高效率的电源管理。它针对2.4GHz蓝牙低功耗系统、专有2.4GHz系统…

Jetpack架构组件学习(6)——使用Glance实现桌面小组件

原文地址: Jetpack架构组件学习(6)——使用Glance实现桌面小组件-Stars-One的杂货小窝公司陆续整了几个Compose写的app,有个小组件的功能,顺便试了下Jetpack库里的Glance框架 感觉与原来的Remoteview差点意思,不过点击事件的使用比Remoteview要方便不少PS: 如果想看Remoteview实…

《操作系统真象还原》第九章 线程(二) 多线程轮转调度

本文是对《操作系统真象还原》第九章(二)学习的笔记,欢迎大家一起交流第九章 线程(二) 多线程轮转调度 本文是对《操作系统真象还原》第九章(二)学习的笔记,欢迎大家一起交流,目前所有代码已托管至 fdx-xdf/MyTinyOS 。 上一节中成功创建了线程并运行,这一节要实现的…