bzoj 2852: 强大的区间 辗转相除
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
Sample Output
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: 强大的区间 辗转相除的更多相关文章
- BZOJ.4031.[HEOI2015]小Z的房间(Matrix Tree定理 辗转相除)
题目链接 辗转相除解行列式的具体实现? 行列式的基本性质. //864kb 64ms //裸的Matrix Tree定理.练习一下用辗转相除解行列式.(因为模数不是质数,所以不能直接乘逆元来高斯消元. ...
- Alice and Bob 要用到辗转相减
Alice and BobTime Limit: 1 Sec Memory Limit: 64 MBSubmit: 255 Solved: 43 Description Alice is a be ...
- (中等) 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 ...
- [Luogu1891]疯狂LCM[辗转相减法]
题意 多组询问,每次给定 \(n\) ,求:\(\sum_{i=1}^nlcm(i,n)\) . \(\rm T \leq 3\times 10^4\ ,n \leq 10^6\). 分析 推式子: ...
- Luogu4111 [HEOI2015]小Z的房间 (矩阵树,辗转相除高斯消元)
除法不能用于同余系,要辗转相除.注意不能加入柱子到矩阵. #include <iostream> #include <cstdio> #include <cstring& ...
- BZOJ.4894.天赋(Matrix Tree定理 辗转相除)
题目链接 有向图生成树个数.矩阵树定理,复习下. 和无向图不同的是,度数矩阵改为入度矩阵/出度矩阵,分别对应外向树/内向树. 删掉第i行第i列表示以i为根节点的生成树个数,所以必须删掉第1行第1列. ...
- python强大的区间处理库interval用法介绍
原文发表在我的博客主页,转载请注明出处 前言 这个库是在阅读别人的源码的时候看到的,觉得十分好用,然而在网上找到的相关资料甚少,所以阅读了源码来做一个简单的用法总结.在网络的路由表中,经常会通过掩码来 ...
- 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 ...
- 数据结构与算法C++描述学习笔记1、辗转相除——欧几里得算法
前面学了一个星期的C++,以前阅读C++代码有些困难,现在好一些了.做了一些NOI的题目,这也是一个长期的目标中的一环.做到动态规划的相关题目时发现很多问题思考不通透,所以开始系统学习.学习的第一本是 ...
随机推荐
- linux服务器上
命令行>mysql -uwin -pwin2009进入mysql command状态>use mindo时入mindo数据库>source 500sql.txt执行sql
- 一款很不错的FLASH时种插件
直接贴一段代码上来,大家看看效果: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" " ...
- Java开发之I/O读取文件实例详解
在java开发或者android开发中,读取文件是不可避免的,以下对java开发中读取文件做了归纳和详解: 1.按字节读取文件内容2.按字符读取文件内容3.按行读取文件内容 4.随机读取文件内容 pa ...
- Centos如何设置静态IP地址,LINUX怎么修改IP地址
1.登陆连接centos系统,输入 ifconfig 可以查看到当前本机的IP地址信息 2.临时设置IP地址: 输入 ifconfig eth0 (默认是第一个网卡) 后面接IP地址, 网络掩码和 网 ...
- Environment variable:"PATH" 状态 失败
问题截图: 问题内容: 未能满足某些最低安装要求.请复查并修复下表中列出的问题,然后重新检查系统. Checks Environment Variable: "PATH" ...
- 百思不得其解—这些年做Web开发遇到的坑?
请教一个问题:Bootstrap 模态框modal里面的嵌入 iframe ,然后iframe 里面载入的是优酷的视频 ,现在的问题是:这个模态框在谷歌浏览器上面可以播放出视频,而在ff浏览器里面无 ...
- 20160322 javaweb 学习笔记--response验证码实现
package com.dzq.servlet; import java.awt.Color; import java.awt.Font; import java.awt.Graphics2D; im ...
- 趣拍proguard配置
# Add project specific ProGuard rules here.# By default, the flags in this file are appended to flag ...
- IEnumerable接口的扩展方法
/// <summary>/// IEnumerable接口的扩展方法,支持它的实现类是List的情况/// </summary>using System.Collection ...
- SQL Server调优系列基础篇 - 索引运算总结
前言 上几篇文章我们介绍了如何查看查询计划.常用运算符的介绍.并行运算的方式,有兴趣的可以点击查看. 本篇将分析在SQL Server中,如何利用先有索引项进行查询性能优化,通过了解这些索引项的应用方 ...