当前位置: 首页 > news >正文

AT_abc026_d 高橋君ボール1号 题解

AT_abc026_d [ABC026D] 高橋君ボール1号

Link:
https://www.luogu.com.cn/problem/AT_abc026_d
https://atcoder.jp/contests/abc026/tasks/abc026_d

题目描述

高桥君擅长打棒球。他能够投出一种名为“高桥君球 1 号”的变化球。

这种球在投出后t tt秒的位置可以表示为f ( t ) = A × t + B × sin ⁡ ( C × t × π ) f(t) = A \times t + B \times \sin(C \times t \times \pi)f(t)=A×t+B×sin(C×t×π)

你需要在t ≥ 0 t \geq 0t0f ( t ) = 100 f(t) = 100f(t)=100的时刻击打这个球。请你求出此时的t tt

输入格式

输入通过标准输入按以下格式给出。

A AAB BBC CC

  • 1 11行给出表示f ( t ) f(t)f(t)公式的整数A , B , C A, B, CA,B,C,用空格分隔。( 1 ≤ A , B , C ≤ 100 ) (1 \leq A, B, C \leq 100)(1A,B,C100)

输出格式

请输出一个满足f ( t ) = 100 f(t) = 100f(t)=100t ≥ 0 t \geq 0t0t tt。如果有多个解,输出任意一个即可。只要∣ f ( t ) − 100 ∣ ≤ 10 − 6 |f(t) - 100| \leq 10^{-6}f(t)100∣106,就视为正确答案。

输出末尾需换行。

由于本题容易产生误差,请特别注意精度问题。

输入输出样例 #1

输入 #1

1 1 1

输出 #1

100

输入输出样例 #2

输入 #2

53 82 49

输出 #2

1.63372043395339

说明/提示

样例解释 1

t = 100 t = 100t=100时,f ( t ) = 100 f(t) = 100f(t)=100

样例解释 2

请注意,解可能不唯一。

由 ChatGPT 4.1 翻译


Solution

大致题意

求解方程A x + B sin ⁡ ( C π x ) − 100 = 0 Ax+B\sin(C\pi x)-100=0Ax+Bsin(Cπx)100=0的近似解。

解答

本题的方程对应的函数f ( x ) = A x + B sin ⁡ ( C π x ) − 100 f(x)=Ax+B\sin(Cπx)-100f(x)=Ax+Bsin(Cπx)100并不是一个严格的单调函数,因此二分法不一定能立刻想到。除了二分法以外,本题可以使用牛顿法求解。

由于f ( x ) = A x + B sin ⁡ ( C π x ) − 100 f(x)=Ax+B\sin(Cπx)-100f(x)=Ax+Bsin(Cπx)100

则导函数f ′ ( x ) = A + B C π cos ⁡ ( C π x ) f'(x)=A+BC\pi \cos(C\pi x)f(x)=A+BCπcos(Cπx)

根据牛顿法的近似公式x n + 1 = x n − f ( x n ) f ′ ( x n ) x_{n+1}=x_n-\dfrac{f(x_n)}{f'(x_{n})}xn+1=xnf(xn)f(xn)即可将这个问题直接转化为一个递推问题,当相邻两项的差值小于给定的精度时即可结束递推输出答案。本题由于已经规定了A , B , C A,B,CA,B,C皆为[ 1 , 100 ] [1,100][1,100]范围内的整数,因此初始值x 0 x_0x0也就是代码中的sln[0],可以选择从100 A \dfrac{100}{A}A100开始。

需要说明的是:

  1. 牛顿法通常比二分法收敛更快,适用于不具有单调性的场合,但是前提是所求的表达式必须在指定的区间上可导
  2. 牛顿法的局限性在于只能求出方程某一个特定的近似解(如果方程有多解)。换用不同的初始值,得到的近似解也可能不同。本题要求对于可能的多解输出任意一个解即可,因此牛顿法可以通过此题。
  3. 如果使用long double类型来存储答案,计算乘幂、三角函数和对数等需要使用函数powlsinlcosllog10l等来进行计算,输入/输出需要使用格式字符串"%Lf"

AC 代码

#include<cmath>#include<iostream>usingnamespacestd;longdoubleA,B,C,pi=3.1415926535897932385L,eps=1e-13L;longdoublesln[10000];//The function.longdoubleF(longdoublex){returnA*x+B*sinl(C*pi*x)-100.L;}//The derivate function of F.longdoublederivateF(longdoublex){returnA+B*C*pi*cosl(C*pi*x);}intmain(){cin>>A>>B>>C;intr=0;sln[0]=100.L/A;while(r<=9998){sln[r+1]=sln[r]-1.0L*F(sln[r])/derivateF(sln[r]);if(fabs(sln[r+1]-sln[r])<=eps)break;r+=1;}printf("%.14Lf",sln[r]);}

2023.08.21 更新:修正公式中的一处错误,增加一些补充说明。

http://www.jsqmd.com/news/795621/

相关文章:

  • 别再让CPU干等!用STM32CubeMX配置DMA搬运串口数据,实测性能提升明显
  • Sheared LLaMA:结构化剪枝与持续预训练实现高效大模型压缩
  • 如何快速下载网易云音乐无损FLAC:3分钟批量下载工具完全指南
  • 2026年泸州回收黄金机构哪家好 资质齐全 高效便捷 覆盖城区及周边县域上门服务 - 深度智识库
  • 玛瑙研磨罐选购攻略,源头厂家直供更放心 - 品牌推荐大师
  • 2026最新家具真皮/沙发真皮/牛皮家具革公司推荐!广东优质权威榜单发布,佛山品类齐全实力过硬公司推荐 - 十大品牌榜
  • 终极窗口强制调整工具WindowResizer:3分钟快速上手完整指南
  • 2026年贵阳室内全案设计与精装整装:5大品牌深度横评与选购避坑指南 - 企业名录优选推荐
  • 2026年贵阳室内装修全案设计深度横评:从设计落地到一站式交付的品质透明指南 - 企业名录优选推荐
  • 哈尔滨链板线厂家 - 速递信息
  • 3步实战:用DistroAV插件解决OBS多机位网络传输难题
  • 沃尔玛回收靠谱渠道推荐,企业节日福利卡不用再硬凑消费 - 喵权益卡劵助手
  • 网络安全学习第104天
  • 2026年太原短视频代运营与GEO优化完全指南:中小企业如何实现获客成本直降60% - 优质企业观察收录
  • 晋中GEO生成式引擎优化与短视频运营完全指南:新思域科技如何帮企业降低获客成本40%-60% - 优质企业观察收录
  • 3个核心功能全面解析:LeagueAkari英雄联盟本地自动化工具使用指南
  • 终极指南:3分钟完成Windows和Office永久激活的免费方案
  • Speechless微博导出工具:5分钟搞定微博PDF备份的终极指南
  • 2026 年镀锌角钢厂家怎么选?靠谱源头生产厂家推荐指南 - 企品推
  • 微信AI机器人搭建全攻略:基于WeChatFerry与ChatGPT的自动化消息回复
  • 2026昆明黄金回收口碑商家TOP5:黄金回收哪家强! - 江湖评测
  • 金融APP加固公司指南:从苹果审核到防破解的实战经验分享
  • 2026年糙面土工膜厂家推荐榜单 单糙面 vs 双糙面土工膜源头厂家 - 速递信息
  • 2026年口碑认证的5家选矿设备厂家招远市金都矿山机械领跑 - 奔跑123
  • 5分钟解锁Honey Select 2完整体验:从语言障碍到功能全开的终极解决方案
  • 2026年Q2广州印刷厂权威排行榜|广州市丽彩印刷科技有限公司领跑 - damaigeo
  • 基于OpenClaw构建安全可控的个人AI助手:架构、安全与自动化实践
  • 告别虚拟机臃肿:用QEMU用户模式(qemu-user)快速运行跨架构程序的完整指南
  • 5步掌握League-Toolkit:英雄联盟智能选择工具深度解析
  • B站视频下载终极教程:3步获取无水印高清视频