Uva 654 Ratio
题意:
给两个数, n, m 构造一个序列, 分母从1 ~ m, 并且j / i越来越接近n/m。
思路:
如果存在 j / i 趋近于 n / m 那么则有 j = n * i / m + 0.5(四舍五入)。
维护与 n/m的差值即可。
第一次写的太复杂, 后来看了别人的博客, 才发现原来是自己想多了。
代码:
- #include <cmath>
- #include <cstdio>
- #include <cstring>
- #include <cstdlib>
- #include <ctime>
- #include <set>
- #include <map>
- #include <list>
- #include <stack>
- #include <queue>
- #include <string>
- #include <vector>
- #include <fstream>
- #include <iterator>
- #include <iostream>
- #include <algorithm>
- using namespace std;
- #define LL long long
- #define INF 0x3f3f3f3f
- #define MOD 1000000007
- #define eps 1e-6
- #define MAXN 1000000
- #define MAXM 100
- #define dd {cout<<"debug"<<endl;}
- #define pa {system("pause");}
- #define p(x) {printf("%d\n", x);}
- #define pd(x) {printf("%.7lf\n", x);}
- #define k(x) {printf("Case %d: ", ++x);}
- #define s(x) {scanf("%d", &x);}
- #define sd(x) {scanf("%lf", &x);}
- #define mes(x, d) {memset(x, d, sizeof(x));}
- #define do(i, x) for(i = 0; i < x; i ++)
- #define dod(i, x, l) for(i = x; i >= l; i --)
- #define doe(i, x) for(i = 1; i <= x; i ++)
- int Gainers, Losers;
- void solve()
- {
- double cnt = (Gainers * 1.0) / (Losers * 1.0);
- double ans = INF;
- for(int denominator = ; denominator <= Losers; denominator ++)
- {
- int molecular = denominator * cnt + 0.5;
- double temp = fabs((molecular * 1.0) / (denominator * 1.0) - cnt);
- if(temp < ans)
- {
- ans = temp;
- printf("%d/%d\n", molecular, denominator);
- }
- }
- }
- int main()
- {
- int kcase = ;
- while(scanf("%d %d", &Gainers, &Losers) != EOF)
- {
- if(kcase ++) printf("\n");
- solve();
- }
- return ;
- }
Uva 654 Ratio的更多相关文章
- .Uva&LA部分题目代码
1.LA 5694 Adding New Machine 关键词:数据结构,线段树,扫描线(FIFO) #include <algorithm> #include <cstdio&g ...
- UVa 10012 - How Big Is It? 堆球问题 全排列+坐标模拟 数据
题意:给出几个圆的半径,贴着底下排放在一个长方形里面,求出如何摆放能使长方形底下长度最短. 由于球的个数不会超过8, 所以用全排列一个一个计算底下的长度,然后记录最短就行了. 全排列用next_per ...
- UVA 1412 Fund Management (预处理+状压dp)
状压dp,每个状态可以表示为一个n元组,且上限为8,可以用一个九进制来表示状态.但是这样做用数组开不下,用map离散会T. 而实际上很多九进制数很多都是用不上的.因此类似uva 1601 Mornin ...
- Buffer cache hit ratio性能计数器真的可以作为内存瓶颈的判断指标吗?
Buffer cache hit ratio官方是这么解释的:“指示在缓冲区高速缓存中找到而不需要从磁盘中读取的页的百分比.” Buffer cache hit ratio被很多人当做判断内存的性能指 ...
- uva 1354 Mobile Computing ——yhx
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAABGcAAANuCAYAAAC7f2QuAAAgAElEQVR4nOy9XUhjWbo3vu72RRgkF5
- UVA 10564 Paths through the Hourglass[DP 打印]
UVA - 10564 Paths through the Hourglass 题意: 要求从第一层走到最下面一层,只能往左下或右下走 问有多少条路径之和刚好等于S? 如果有的话,输出字典序最小的路径 ...
- UVA 11404 Palindromic Subsequence[DP LCS 打印]
UVA - 11404 Palindromic Subsequence 题意:一个字符串,删去0个或多个字符,输出字典序最小且最长的回文字符串 不要求路径区间DP都可以做 然而要字典序最小 倒过来求L ...
- UVA&&POJ离散概率与数学期望入门练习[4]
POJ3869 Headshot 题意:给出左轮手枪的子弹序列,打了一枪没子弹,要使下一枪也没子弹概率最大应该rotate还是shoot 条件概率,|00|/(|00|+|01|)和|0|/n谁大的问 ...
- UVA计数方法练习[3]
UVA - 11538 Chess Queen 题意:n*m放置两个互相攻击的后的方案数 分开讨论行 列 两条对角线 一个求和式 可以化简后计算 // // main.cpp // uva11538 ...
随机推荐
- Chrome&FF&Opera&下DIV不设置高度显示背景颜色和边框的办法
今天在排版的时候,外层的div不写高度的话背景颜色和边框没法办法显示,但是在IE下面就可以,这个有三个解决办法. 第一: 直接给最外层的div设置高度(不推荐). 第二: 在内部每个div后添加一个清 ...
- List集合即其遍历
1. 首先List<E>集合继承与Collection<E>,是一个接口. ① Collection (集合框架是JDK1.2版本出现的) ② list:是有序的,元素可 ...
- SQL*PLUS中批量执行SQL语句
SQL*PLUS中批量执行SQL语句 今天由于工作的需要,要在CMD中批量执行大量的SQL语句,对于Oracle学习还处在入门阶段的我,只能硬着头皮到处去寻找资料(主要是网络资料,也包括自己的电子书) ...
- scala学习笔记:各种奇怪的写法
Unit函数的定义: def foo()={println("hi")} 等号可以省略: def foo(){println("hi")} update方法: ...
- MongoDB 的分组操作 In C#
C#对mongodb的分组查询操作,主要通过脚本或Aggregate方法来实现,以下通过一些实例作解析: 参考资料:http://www.tuicool.com/articles/2iqUZj h ...
- 关于hover没有效果的问题
今天用vs2012写一个页面的是时候,用到hover的效果,原本是没有难度的事情,后来因为一个细节,导致浪费了点时间. 原来是我在css文件里面写完样式后,用了ctrl+k+D进行了格式化,然后vs在 ...
- getScript 按需加载javascript
$('input:button:first').click(function(aaa) { $.getScript('new.js', function() { alert('Script loade ...
- 解决Redis Cluster模式下的排序问题
通常的redis排序我们可以这么做: 比如按商品价格排序:sort goods_id_set by p_*_price 这样在非集群模式下是没问题的,但如果在集群模式下,就会报错: 说是在集群模式下不 ...
- android adb:电池与电量
手机每个硬件的耗电量是不一样的!比如屏幕就是耗电大户!其它一些元件则耗电量非常小! 使用android dumpsys工具可以获取电池以及电量消耗信息! dumpsys工具:battery.batte ...
- js个人笔记
一.删除元素 <!DOCTYPE html> <html> <head> <title>删除元素</title> </head> ...