zoukankan      html  css  js  c++  java
  • 洛谷P2651 添加括号III

    地址:https://www.luogu.com.cn/problem/P2651

    题意如此

    解析:

    要想分数可化为整数,那么分子与分母的最大公因数为分母本身。

    a1,a2,......an

    可以得出,不管怎么变换顺序,a1必为分子,a2必为分母。

    要想分子能整除分母,那么分子一定要包含分母的所有因数而且数目大于等于分母。

    所以,最优的组合一定是:a1*a3*a4.....*an/(a2)

    这样,分子可以包含尽量多的因数种类和数目。

    直接乘的话,会爆int,所以只要a2去除每一个gcd(a2,ai)就可以了,只要a2最终为1,即yes

    #include<cstdio>
    #include<map>
    #include<cstring>
    #include<iostream>
    #include<algorithm>
    using namespace std;
    typedef long long ll;
    const int maxn=2e5+10;
    int main()
    {    // 4 0 20
        int t;
        cin>>t;
        while(t--)
        {
            int n;
            cin>>n;
            int a,b;
            cin>>a>>b;
            b=b/__gcd(a,b);
            for(int i=3;i<=n;i++)
            {
                int x;
                cin>>x;
                b=b/__gcd(b,x);
            }
            if(b==1)
                cout<<"Yes"<<endl;
            else
                cout<<"No"<<endl;
        }
    }
  • 相关阅读:
    VSCode配置Python开发环境
    图像特征——边缘
    关于相机内参中的焦距fx和fy
    摄影变换和仿射变换
    为什么要引入齐次坐标
    链表一
    从小问题看懂链表
    类与对象
    排序一
    数组
  • 原文地址:https://www.cnblogs.com/liyexin/p/13236099.html
Copyright © 2011-2022 走看看