poj1183 反正切函数

    第一道poj的题更博,类似于博主这种英文水平,也就切一切这种中文题了吧!

    题目大意:给你正整数a,求满足条件的 b 和 c,使得 $\frac {1}{a}=\frac {\frac {1}{b}+\frac{1}{c}}{1-\frac {1}{b\cdot c}}$,且 b + c 的和最小。

    注释:1<=a<=60,000

      想法:乍一看,数论啊!嘻嘻嘻嘻,好开心,但是没做出来。问了一下神犇CK蛤学长,掌握了一种极猛的处理数论变换的方法。由题目所给的式子可以得到

      $b\cdot c-1=a\cdot b+a\cdot c$

      $\mathrm {\Rightarrow {(b-a)}\cdot c=a\cdot b+1}$

      $\mathrm {\Rightarrow c=\frac{a\cdot b+1}{b-a}}$

      $\mathrm {\Rightarrow c=\frac{a\cdot {(b-a+a)}+1}{b-a}}$

      $\mathrm {\Rightarrow b+c=b+a+\frac{a^2+1}{b-a}}$

      $\mathrm {\Rightarrow b+c=b-a+2\cdot a+\frac{a^2+1}{b-a}}$

      设b-a为t

      $\mathrm {\Rightarrow b+c=t+2\cdot a+\frac{a^2+1}t}$

      得出

      $\mathrm {f(t)=t+2\cdot a+\frac{a^2+1}t}$

      之后枚举$a^2+1$的所有不大于$\sqrt{a^2+1}$的所有约数,找到最小的,更新即可

        最后,附上丑陋的代码......

#include <iostream>
#include <cstdio>
#include <cmath>
typedef long long ll;
using namespace std;
int main()
{
int a;
while(~scanf("%d",&a))
{
ll all=(ll)a*a+;
ll k=(ll)(sqrt(all*1.0));
ll ans=1ll<<;
for(ll i=;i<=k;i++)
{
if(all%i==) ans=min(ans,i+all/i+*a);
}
printf("%lld\n",ans);
}
return ;
}

    小结:这东西,码出来就不该有错吧......

    转载请注明:http://www.cnblogs.com/ShuraK/p/7880273.html——未经博主允许,严禁转载

poj1183 反正切函数的更多相关文章

  1. poj1183 反正切函数的应用(水)

    这一题主要是推导过程+注意一下范围. // 由公式4你可以得到: arctan(/a)=arctan[(/b+/c)/(-/b*c)] =>b*c-=a(b+c); 令 b=a+m,c=a+n; ...

  2. 2018.08.16 POJ1183反正切函数的应用(简单数学)

    传送门 代数变形一波. 显然有b,c>a. 那么这样的话可以令b=a+m,c=a+n. 又有a=(bc-1)/(b+c). 带入展开可知m*n=a*a+1. 要让m+n最小只需让m最大,这个结论 ...

  3. [NOI2001]反正切函数的应用

    Time Limit:1000ms Memory Limit:65536kB Description 反正切函数可展开成无穷级数,有如下公式 (其中0 <= x <= 1) 公式(1) 使 ...

  4. Openjudge/Poj 1183 反正切函数的应用

    1.链接地址: http://bailian.openjudge.cn/practice/1183 http://poj.org/problem?id=1183 2.题目: 总时间限制: 1000ms ...

  5. 反正切函数atan与atan2的区别

    atan 和 atan2 都是求反正切函数,如:有两个点 point(x1,y1), 和 point(x2,y2); 那么这两个点形成的斜率的角度计算方法分别是: float angle = atan ...

  6. Poj 4227 反正切函数的应用

    Description 反正切函数可展开成无穷级数,有例如以下公式 (当中0 <= x <= 1) 公式(1) 使用反正切函数计算PI是一种经常使用的方法.比如,最简单的计算PI的方法: ...

  7. POJ 1183 反正切函数的应用

    H - 反正切函数的应用 Time Limit:1000MS     Memory Limit:10000KB     64bit IO Format:%I64d & %I64u Submit ...

  8. 反正切函数求圆周率 atan

    #define PI atan(1.0)*4 原理:tan ∏/4=1; atan2: 返回给定的 X 及 Y 坐标值的反正切值.反正切的角度值等于 X 轴正方向与通过原点和给定坐标点 (Y坐标, X ...

  9. POJ 1183 反正切函数的应用(数学代换,基本不等式)

    题目链接:http://poj.org/problem?id=1183 这道题关键在于数学式子的推导,由题目有1/a=(1/b+1/c)/(1-1/(b*c))---------->a=(b*c ...

随机推荐

  1. List转换成JSON对象报错(一)

    List转换成JSON对象 1.具体报错如下 Exception in thread "main" java.lang.NoClassDefFoundError: org/apac ...

  2. freemarker字符串拼接

    freemarker字符串拼接 1.字符串拼接的几种类型 (1)字符串和字符串 (2)字符串和数字 (3)字符串和字符串变量 (4)字符串变量和字符串变量 2.演示示例 <#--定义字符串--& ...

  3. javax.el.PropertyNotFoundException:Property 'statisDate' not found on type java.lang.String

    1.错误描述 javax.el.PropertyNotFoundException:Property 'statisDate' not found on type java.lang.String 2 ...

  4. Java中的StringBuffer

    Java中的StringBuffer /** * */ package com.you.model; /** * @author YouHaidong * */ public class StrFoo ...

  5. STM32f4 ARM Bootloader

    参考资料: 基于ARM 的嵌入式系统Bootloader 启动流程分析 Bootloader 详解 ( 代码环境 | ARM 启动流程 | uboot 工作流程 | 架构设计) Android系统启动 ...

  6. 前端测试框架对比(js单元测试框架对比)

    前端测试框架对比(js单元测试框架对比) 本文主要目的在于横评业界主流的几款前端框架,顺带说下相关的一些内容. 测试分类 通常应用会有 单元测试(Unit tests) 和 功能测试(Function ...

  7. thinkphp5源码解析(2)控制器

    入口文件index.php: // 定义应用目录 define('APP_PATH', __DIR__ . '/../application/'); // 加载框架引导文件 require __DIR ...

  8. RobotFramework下的http接口自动化Get Response Body关键字的使用

    Get Response Body 关键字在上面已经有用到了,服务器端在处理完成了发出的http请求后,会给出对应的响应结果,那么Get Response Body这个关键字就是来获取响应结果中的主体 ...

  9. 第三篇:爬虫框架 - Scrapy

    前言 Python提供了一个比较实用的爬虫框架 - Scrapy.在这个框架下只要定制好指定的几个模块,就能实现一个爬虫. 本文将讲解Scrapy框架的基本体系结构,以及使用这个框架定制爬虫的具体步骤 ...

  10. springboot--springboot+mybatis多数据源最简解决方案

    说起多数据源,一般都来解决那些问题呢,主从模式或者业务比较复杂需要连接不同的分库来支持业务.我们项目是后者的模式,网上找了很多,大都是根据jpa来做多数据源解决方案,要不就是老的spring多数据源解 ...