美文网首页
CodeForces - 305B —— Continued

CodeForces - 305B —— Continued

作者: 四川孙一峰 | 来源:发表于2017-01-18 11:25 被阅读0次

题目大意

连分数.png

本题给我们一个分数p/q,再给我们n个数字a1,a2,a3.....an。问p/q是否等于这n个数构成的连分数。由于数据很大所以肯定用long long最好用cin,cout。(本题单组数据)

样例输入

9 4
2
2 4

9 4
3
2 3 1

9 4
3
1 2 4

样例输出

YES
YES
NO

题目分析

一开始想复杂了。以为有什么公式,后来看了别人的代码才知道只需要p/q-a1(分数形式)=后面的东西。然后在把等号两边同时分子分母交换,这样右边又变成了整数加分数的形式,然后再重复同样的操作一共n次,若最后相减的结果为0则判断YES,否则判断NO。

其他问题

1.这个题由于数据很大,直接把等号右边的数据相加再和p/q比较是不靠谱的,会溢出数据(就算是LL)。而相减的话思路也会更简单。
2.在每次执行操作之前一定要判断两点,第一是若是分母为0了就出问题了肯定可以退出了,因为再按照通分相减计算会出问题,再者,本来分母就不能为0。第二也是很重要的一点就是再执行操作之前一定好判断p/q是否是小于要减的那个数ai,如果小于,肯定不能,因为第一这样p/q会被减成负数,答案不成立。第二由于我们是p - (q×ai)如果操作之后再判断在数据非常大的情况下q×ai会溢出数据,从而会错判。

代码如下
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#include<cmath>
#define LL long long
using namespace std;
LL num[100];
int main()
{
    LL p,q,x;
    cin >> p >> q >> x;
    for(int i = 0 ; i < x ; i++)
        cin >> num[i];
    bool flag = true;
    for(int i = 0 ; i < x ; i++)
    {
         if( q == 0  || (p/q)<num[i])
         {
             flag = false ; break;
         }
         p-=(q*num[i]);
         swap(p,q);
    }
    if(q == 0 && flag == true) printf("YES\n");
    else printf("NO\n");
}

相关文章

  • CodeForces - 305B —— Continued

    题目大意 本题给我们一个分数p/q,再给我们n个数字a1,a2,a3.....an。问p/q是否等于这n个数构成的...

  • CodeForces - 305B Continued Frac

    1、题目大意 给一个高度n, 给一个分数, 给一组数据,看数据按照题目给出的规则能不能推成题目所给的分数a1 = ...

  • CodeForces 305B

    E - Continued FractionsA continued fraction of height n i...

  • To Be Continued

    如果有一天,有个人,不论他是谁,他面带微笑来问我,我以后想干什么,我一定要告诉他,我有很多事想做。 ...

  • to be continued

    最近的我,处于能量低频状态。如果说七年就是一辈子,我现在正处在一个轮回的末尾处。这是一种难以形容的感受...

  • To be continued

    岁月漫长的旅途,总会有别致的风景,在每个驿站,每个落脚点。 无需感慨流逝的光阴,远客会带来新的风景,陪着你踏上新的...

  • To be continued……💗

    东方金字塔-西夏王陵(宁夏银川)贺兰山 新疆 楼兰古国 重庆 学习强国收藏 四川- 三星堆博物馆遗址 陕西西安-...

  • To be continued

    我终于又一次看完了旧时光。他们说最好的故事是未完待续(to be continued.)所以,当每一个我喜欢的故事...

  • To be continued

    未完不一定待续

  • to be continued

    如题

网友评论

      本文标题:CodeForces - 305B —— Continued

      本文链接:https://www.haomeiwen.com/subject/prgvbttx.html