2015湖南湘潭 D

2015湖南湘潭第七届大学生程序设计比赛

D题

Fraction

Accepted : 133   Submit : 892
Time Limit : 1000 MS   Memory Limit : 65536 KB

Fraction

Problem Description:

Everyone has silly periods, especially for RenShengGe. It‘s a sunny day, no one knows what happened to RenShengGe, RenShengGe says that he wants to change all decimal fractions between 0 and 1 to fraction. In addtion, he says decimal fractions are too complicate, and set that  is much more convient than 0.33333... as an example to support his theory.

So, RenShengGe lists a lot of numbers in textbooks and starts his great work. To his dissapoint, he soon realizes that the denominator of the fraction may be very big which kills the simplicity that support of his theory.

But RenShengGe is famous for his persistence, so he decided to sacrifice some accuracy of fractions. Ok, In his new solution, he confines the denominator in [1,1000] and figure out the least absolute different fractions with the decimal fraction under his restriction. If several fractions satifies the restriction, he chooses the smallest one with simplest formation.

Input

The first line contains a number T(no more than 10000) which represents the number of test cases.

And there followed T lines, each line contains a finite decimal fraction x that satisfies .

Output

For each test case, transform x in RenShengGe‘s rule.

Sample Input

3
0.9999999999999
0.3333333333333
0.2222222222222

Sample Output

1/1
1/3
2/9

tip

You can use double to save x;

赛后题目链接:http://202.197.224.59/OnlineJudge2/index.php/Problem/read/id/1236


题意:输出最接近x的分数。分数的分母范围[1,1000]。

思路:打表求出所有的分数,注意0/1这个情况。二分求出分母。最好最后比较一下,因为输出的是最接近x的分数。

代码:

#include<bits/stdc++.h>
using namespace std;
#define eps 0.00000001
struct gg
{
    double num;
    int a,b;
} ans[2000000];
int cmp(gg x,gg y)
{
    return x.num<y.num;
}
int main()
{
    int i,j,t;
    t=0;
    ans[t].num=0;
    ans[t].a=0;
    ans[t++].b=1;
    for(i=1; i<=1000; i++)
    {
        for(j=1; j<i; j++)
        {
            if(__gcd(i,j)>1) continue;
            double x=j*1.0/i;
            ans[t].num=x;
            ans[t].a=j;
            ans[t++].b=i;
        }
    }
    ans[t].num=1;
    ans[t].a=1;
    ans[t++].b=1;
    sort(ans,ans+t,cmp);
    int T;
    double x;
    scanf("%d",&T);
    while(T--)
    {
        scanf("%lf",&x);
        int l=0,r=t,mid;
        while(l<r)
        {
            mid=(l+r)/2;
            if(fabs(x-ans[mid].num)<eps) break;
            if(x>ans[mid].num) l=mid+1;
            else r=mid;
        }
        int sign1=mid-1,sign2=mid,sign3=mid+1,sign;
        double flag1=10,flag2=10,flag3=10,flag;
        if(sign1>=0) flag1=ans[sign1].num;
        if(sign2>=0) flag2=ans[sign2].num;
        if(sign3>=0) flag3=ans[sign3].num;
        if(fabs(flag1-x)<fabs(flag2-x)) sign=sign1;
        else sign=sign2;
        flag=ans[sign].num;
        if(fabs(flag-x)>fabs(flag3-x)) sign=sign3;
        printf("%d/%d\n",ans[sign].a,ans[sign].b);
    }
    return 0;
}

时间: 2024-11-20 19:22:16

2015湖南湘潭 D的相关文章

2015湖南长沙生存费用粗估

2015湖南长沙生存费用粗估表 目录 第一部分 估算原由3 第二部分 估算方法3 第三部分 中国长沙生存费用估算表3 第一部分 估算原由 前一段时间国家每年一度的平均工资发布了.国家统计局发布的2014年平均工资主要数据显示,全国城镇非私营单位就业人员年平均工资56339元,全国城镇私营单位就业人员年平均工资36390元.随后不久湖南平均工资也公布了,分别是城镇非私营单位47117元和城镇私营单位30568元.均遭到了大多数网友的吐槽. 虽然政府统计数据的效力已经众所周知了.也许政府公布的数据与

2015湖南集训DAY8——梦工厂

梦工厂 (yume.cpp/c/pas) Time Limit: 1 s Memory Limit: 128 M 问题描述 「有时候用烂了的名字也会别有深意」 --摘自EN 语录 "这里是制造快乐,编织幸福的梦工厂!才不是你们想的什么奇怪的工厂呢!哼!" 这是你来到这个奇妙的地方所听到的第一句话,竟然还是一头身长三米的狗熊发出来的. 一开始看到梦工厂这块牌匾时,你心里想的是什么呢?如果真的是洋溢着青涩而纯洁的 梦想,那就太棒了! 初来乍到,狗熊先生决定给你先大致地讲解一下工厂的运作过程

2015湖南ACM省赛I题 Internet of Lights and Switches(思维)

https://ac.2333.moe/Problem/view.xhtml?id=1646 本来想用主席树来着,一看内存直接劝退. 貌似只能用vector或map搞一搞了. 1 #define bug(x) cout<<#x<<" is "<<x<<endl 2 #include<iostream> 3 #include<algorithm> 4 #include<iterator> 5 #inclu

湖南农民运动考察报告

(一九二七年三月) 引言:此文是为了答复当时党内党外对于农民革命斗争的责难而写的.为了这个目的,到湖南做了三十二天的考察工作,并写了这一篇报告.当时党内以陈独秀为首的右倾机会主义者,不愿意接受毛的意见,而坚持自己的错误见解.他们的错误,主要是被国党的反动潮流所吓倒,不敢支持已经起来和正在起来的伟大的农民革命斗争.为了迁就国党,他们宁愿抛弃农民这个最主要的同盟军,使工人阶级和产党处于孤立无援的地位.一九二七年春夏国党之所以敢于叛变,发动"清党运动"和反人民的战争,主要就是乘了产党的这个弱

中科院院士陈仙辉回母校:英雄不问出处 成功要靠努力和实力来实现

人民网宜春12月26日电(时雨)25日这一天,对于江西宜春学院来说可谓“蓬荜生辉”,今年中国科学院新当选的院士陈仙辉回到他的母校.在座谈会上,陈仙辉当年的老师来了,他的同窗好友来了,大家一起分享陈仙辉当年在校的经历.同时,陈仙辉也在座谈会上发言,他说,如今取得成绩和母校宜春学院密不可分,同时他也认为“英雄不问出处”. 链接:http://jx.people.com.cn/n2/2015/1226/c190260-27404787.html       陈仙辉:成为“英雄”之前别人会问“出处” “

基于SCADA数据驱动的风电机组部件故障预警

吴亚联 1 , 梁坤鑫 1 , 苏永新 1* , 詹 俊 2(1.湘潭大学 信息工程学院, 湖南 湘潭 411105: 2.湖南优利泰克自动化系统有限公司, 湖南 长沙 410205) 摘 要: 为提高风电机组部件故障预警的精度和速度, 文章提出了一种基于SCADA数据的风电机组部件故障预警方法, 用于解决现存的风电机组部件故障预警时间与故障预警精度的矛盾. 首先SCADA历史数据通过数据预处理与BP神经网络建立机组部件正常状态模型, 随后以该模型为基础结合基于马氏距离的数据统计方法形成故障预警

杨森翔:春节文化大观上编 第三章 春节古诗词 目录 第一节:春节诗词概述 一、 除夕诗词概述 二、元日诗词概述 三、 元宵诗词概述 第二节:春节古诗词拾萃

杨森翔:春节文化大观上编 第三章 春节古诗词 目录 第一节:春节诗词概述 一. 除夕诗词概述 二.元日诗词概述 三. 元宵诗词概述 第二节:春节古诗词拾萃 一.腊祭诗词 二.祭灶诗词 三.除夕诗词 四.元旦诗词 五.人日诗词 六.元宵诗词 第一节:春节古诗词概述 中国的春节,作为除旧迎新的节日,时间相当长,从年前的腊月二十三,天空中就似乎弥漫了节日的气息.这种节日的气氛,在保持传统风俗较好的地方,甚至会持续到二月二龙抬头的时候,但欢度春节的高潮,应该说是自除夕始一直到上元之夜.因此,历代歌咏和反

商户入驻城市编码

地区码 省 市 区     1 中国     110000 北京     110100 北京 北京   110101 北京 北京 东城区   110102 北京 北京 西城区   110105 北京 北京 朝阳区   110106 北京 北京 丰台区   110107 北京 北京 石景山区   110108 北京 北京 海淀区   110109 北京 北京 门头沟区   110111 北京 北京 房山区   110112 北京 北京 通州区   110113 北京 北京 顺义区   110114

asp.net 通过 Handler 导出数据至excel (让用户下载)

效果图: 代码: Export2Excel.ashx 1 <%@ WebHandler Language="C#" CodeBehind="Export2Excel.ashx.cs" Class="BLIC.SecurityCodeValidate.Web.Handler.Export2Excel" %> Export2Excel.ashx.cs 1 using System; 2 using System.Collections.G