zoukankan      html  css  js  c++  java
  • NOI 2001 反正切函数的应用

    NOI 2001 反正切函数的应用

    洛谷传送门

    题目背景

    反正切函数可展开成无穷级数,有如下公式

    arctan(x) = sum_{n = 0}^infty frac{(-1) ^ n x ^ {2n + 1}}{2n + 1} ( 0 le x le 1 ) ag{1}arctan(x)=n=0∑∞2n+1(−1)n**x2n+1(0≤x≤1)(1)

    使用反正切函数计算 是一种常用的方法。例如,最简单的计算 的方法:

    egin{aligned} pi & = 4 arctan(1) & = 4(1 - frac{1}{3} + frac{1}{5} - frac{1}{7} + frac{1}{9} - frac{1}{11} + dots) end{aligned} ag{2}π=4arctan(1)=4(1−31+51−71+91−111+…)(2)

    然而,这种方法的效率很低,但我们可以根据角度和的正切函数公式:

    an(alpha + eta) = frac{ an(alpha) + an(eta)}{1 - an(alpha) an(eta)} ag{3}tan(α+β)=1−tan(α)tan(β)tan(α)+tan(β)(3)

    通过简单的变换得到:

    arctan(p) + arctan(q) = arctan(frac{p + q}{1 - p q}) ag{4}arctan(p)+arctan(q)=arctan(1−pqp+q)(4)

    利用这个公式,令 p = frac{1}{2}, q = frac{1}{3}p=21,q=31,则 frac{p + q}{1 - p q} = 11−pqp+q=1,有

    arctan(frac{1}{2}) + arctan(frac{1}{3}) = arctan(frac{frac{1}{2} + frac{1}{3}}{1 - frac{1}{2} cdot frac{1}{3}}) = arctan(1)arctan(21)+arctan(31)=arctan(1−21⋅3121+31)=arctan(1)

    题目描述

    我们将公式 44 写成如下形式

    arctan(frac{1}{a}) = arctan(frac{1}{b}) + arctan(frac{1}{c})arctan(a1)=arctan(b1)+arctan(c1)

    其中 a, b, c in mathbb{N^+}a,b,c∈N+。

    我们的问题是:对于每一个给定的 aa,求 b + cb+c 的值。我们保证对于任意的 aa 都存在整数解。如果有多个解,要求你给出 b + cb+c 最小的解。

    输入格式

    输入文件中只有一个正整数 aa

    输出格式

    输出文件中只有一个整数,为 b + cb+c 的值。


    题解:

    题解推的好麻烦啊。

    利用一个性质:(a<ble c)

    然后可以推出来(c=frac{ab+1}{b-a}),所以b的枚举范围就确定了下来。

    最后只要枚举到头就好。

    代码:

    #include<cstdio>
    #define int long long
    using namespace std;
    int a,b,ans;
    signed main()
    {
    	scanf("%lld",&a);
    	for(b=a+1;b*(b-a)<=a*b+1;b++)
    		if((b*b+1ll)%(b-a)==0)
    			ans=(b*b+1ll)/(b-a);
    	printf("%lld
    ",ans);
    	return 0;
    }
    
  • 相关阅读:
    null in ABAP and nullpointer in Java
    SAP ABAP SM50事务码和Hybris Commerce的线程管理器
    Hybris service layer和SAP CRM WebClient UI架构的横向比较
    SAP ABAP和Linux系统里如何检查网络传输的数据量
    SAP CRM WebClient UI和Hybris的controller是如何被调用的
    SAP CRM和Cloud for Customer订单中的业务伙伴的自动决定机制
    SAP CRM WebClient UI和Hybris CommerceUI tag的渲染逻辑
    SAP BSP和JSP页面里UI元素的ID生成逻辑
    微信jsapi支付
    微信jsapi退款操作
  • 原文地址:https://www.cnblogs.com/fusiwei/p/13971124.html
Copyright © 2011-2022 走看看