2852: 强大的区间

Time Limit: 5 Sec  Memory Limit: 128 MB
Submit: 45  Solved: 12
[Submit][Status][Discuss]

Description

curimit很喜欢区间,最近发现了一种很强大的区间。
curimit发现有的区间虽小,比如 (1.99998, 2.000001),但是其中却包含了一个整数2。
但是有的区间较大,比如(1.0001, 1.99998),但是其中却一个整数都没有。
他觉得包含整数的区间很强大,并且提出了一个问题:
我们先给出两个非负实数a,b我们要求一个最小的正整数k ,使得区间(a*k, b*k)是一个包含至少一个整数的区间。
举个例子来说吧,比如我们输入a=1.2   b=1.3 ,那么:
当k=1时, 区间为(1.2 , 1.3)  其中没有整数;
当k=2时, 区间为(2.4 , 2.6)  其中没有整数;
当k=3时, 区间为(3.6 , 3.9)  其中没有整数;
当k=4时, 区间为(4.8 , 5.2)  其中包含了一个整数5。
所以使得区间(1.2*k, 1.3*k)包含一个整数的最小正整数k是4。

Input

两个非负实数a,b。

Output

最小的k的值。

Sample Input

1.2 1.3

Sample Output

4

Hint

HINT

a,b整数部分不超过2^31-1,a,b小数部分位数不超过300位。

这样的题还是很好耍的。首先(a,b)与(a-1,b-1)答案相同,所以保证a<1,若此时b>=0,return 1,否则假设答案为k,中间的数为t,那么我们可以吧原来的范围限定t的式子【a*k<=t<=b*k】化成限定k的【t/b<=k<=t/a】,然后发现就是一个子问题啦。

话说我这个真的是辗转相除吗,我看网上的程序还用了gcd的。。。。

import java.util.*;
import java.math.*; public class b2852
{
static BigDecimal solve(BigDecimal a,BigDecimal b)
{
BigDecimal c;
c=a;
c=c.setScale(0,BigDecimal.ROUND_DOWN);
a=a.subtract(c);
b=b.subtract(c);
//System.out.println(a.toString());
//System.out.println(b.toString());
if (b.compareTo(BigDecimal.ONE)>=0)
return BigDecimal.ONE;
b=BigDecimal.ONE.divide(b,1000,BigDecimal.ROUND_HALF_UP);
a=BigDecimal.ONE.divide(a,1000,BigDecimal.ROUND_HALF_UP);
BigDecimal t=solve(b,a);
b=b.multiply(t);
return b.setScale(0,BigDecimal.ROUND_UP);
}
public static void main(String[] args)
{
Scanner in=new Scanner(System.in);
BigDecimal a=in.nextBigDecimal();
BigDecimal b=in.nextBigDecimal();
a.setScale(1000,BigDecimal.ROUND_HALF_UP);
b.setScale(1000,BigDecimal.ROUND_HALF_UP);
System.out.println(solve(a,b).toString());
}
};

bzoj 2852: 强大的区间 辗转相除的更多相关文章

  1. BZOJ.4031.[HEOI2015]小Z的房间(Matrix Tree定理 辗转相除)

    题目链接 辗转相除解行列式的具体实现? 行列式的基本性质. //864kb 64ms //裸的Matrix Tree定理.练习一下用辗转相除解行列式.(因为模数不是质数,所以不能直接乘逆元来高斯消元. ...

  2. Alice and Bob 要用到辗转相减

    Alice and BobTime Limit: 1 Sec  Memory Limit: 64 MBSubmit: 255  Solved: 43 Description Alice is a be ...

  3. (中等) CF 585C Alice, Bob, Oranges and Apples,矩阵+辗转相除。

    Alice and Bob decided to eat some fruit. In the kitchen they found a large bag of oranges and apples ...

  4. [Luogu1891]疯狂LCM[辗转相减法]

    题意 多组询问,每次给定 \(n\) ,求:\(\sum_{i=1}^nlcm(i,n)\) . \(\rm T \leq 3\times 10^4\ ,n \leq 10^6\). 分析 推式子: ...

  5. Luogu4111 [HEOI2015]小Z的房间 (矩阵树,辗转相除高斯消元)

    除法不能用于同余系,要辗转相除.注意不能加入柱子到矩阵. #include <iostream> #include <cstdio> #include <cstring& ...

  6. BZOJ.4894.天赋(Matrix Tree定理 辗转相除)

    题目链接 有向图生成树个数.矩阵树定理,复习下. 和无向图不同的是,度数矩阵改为入度矩阵/出度矩阵,分别对应外向树/内向树. 删掉第i行第i列表示以i为根节点的生成树个数,所以必须删掉第1行第1列. ...

  7. python强大的区间处理库interval用法介绍

    原文发表在我的博客主页,转载请注明出处 前言 这个库是在阅读别人的源码的时候看到的,觉得十分好用,然而在网上找到的相关资料甚少,所以阅读了源码来做一个简单的用法总结.在网络的路由表中,经常会通过掩码来 ...

  8. BZOJ 1260&UVa 4394 区间DP

    题意: 给一段字符串成段染色,问染成目标串最少次数. SOL: 区间DP... DP[i][j]表示从i染到j最小代价 转移:dp[i][j]=min(dp[i][j],dp[i+1][k]+dp[k ...

  9. 数据结构与算法C++描述学习笔记1、辗转相除——欧几里得算法

    前面学了一个星期的C++,以前阅读C++代码有些困难,现在好一些了.做了一些NOI的题目,这也是一个长期的目标中的一环.做到动态规划的相关题目时发现很多问题思考不通透,所以开始系统学习.学习的第一本是 ...

随机推荐

  1. My97DatePicker日期控件使用方法

    My97DatePicker是一款网页版非常简单而且好用的日期控件,其实几年前就使用过了,这次再次用到,总结下: 首先去官网下载地址:http://www.my97.net/dp/down.asp 在 ...

  2. .Net设计模式_工厂模式(3)

    3.抽象工厂模式 引言: 我们知道汽车需要很多部件才能组装成一辆成品的车,那么我们需要汽车厂生产很多东西,如:马达.车轴.轮胎等,这些东西组装起来后成为了一辆车. 这些东西就是产品族,图解:(出之ht ...

  3. Java基础知识强化之IO流笔记50:IO流练习之 复制多级文件夹的案例

    1. 复制多级文件夹的案例 需求:复制多级文件夹       数据源:E:\JavaSE\day21\code\demos     目的地:E:\   分析:         A:封装数据源File ...

  4. Yii框架页面运行流程

    Yii框架页面运行流程 CComponent | CModel | CActiveRecord.CFormModel(所有模型的父类) | 表名.php(模型) | 入口文件------------- ...

  5. html5 meta标签属性整理

    声明文档使用的字符编码 <meta charset='utf-8'> 声明文档的兼容模式 //指示IE以目前可用的最高模式显示内容<meta http-equiv="X-U ...

  6. css-01

    1.CSS:级联样式表,设置页面的样式 2.css基本的语法:     属性:值; 3.CSS的引入   |-1.元素内容的引入:内联样式       <元素名 style="属性:值 ...

  7. 百思不得其解—这些年做Web开发遇到的坑?

     请教一个问题:Bootstrap 模态框modal里面的嵌入 iframe ,然后iframe 里面载入的是优酷的视频 ,现在的问题是:这个模态框在谷歌浏览器上面可以播放出视频,而在ff浏览器里面无 ...

  8. datetimepicker 初始化只显示年

    $("#overdue2").datetimepicker({ format: 'yyyy', autoclose: true, startView:4, minView:4, t ...

  9. js知识

    行为=事件+由该事件触发的动作 常用事件:onXxx onLoad           打开网页事件 onUnLoad       关闭事件 onClick        单击事件 onChange  ...

  10. WebView支持特效,页面内跳转(转载!)

    webView = (WebView) findViewById(R.id.lottery_webview); webView.getSettings().setJavaScriptEnabled(t ...