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

    题目描述

    现在给出一个表达式,形如a1/a2/a3/.../an

    如果直接计算,就是一个个除过去,比如1/2/1/4=1/8。

    然而小A看到一个分数感觉很不舒服,希望通过添加一些括号使其变成一个整数。一种可行的办法是(1/2)/(1/4)=2。

    现在给出这个表达式,求问是否可以通过添加一些括号改变运算顺序使其成为一个整数。

    输入输出格式

    输入格式:

    一个测试点中会有多个表达式。

    第一行t,表示表达式数量。

    对于每个表达式,第一行是n,第二行n个数,第i个数表示ai。

    输出格式:

    输出t行。

    对于每个表达式,如果可以通过添加括号改变顺序使其变成整数,那么输出“Yes”,否则输出“No”

    输入输出样例

    输入样例#1: 复制
    2
    4
    1 2 1 4
    5
    6 5 7 9 12
    输出样例#1: 复制
    Yes
    No

    说明

    对于40%的数据,n<=16

    对于70%的数据,n<=100

    对于全部数据,2<=n<=10000,1<=t<=100,1<=ai<=maxlongint

    //Pro: P2651 添加括号III
    
    //紫书习题 
    
    //设序列为x1,x2,x3...xn
    //可以知道,x2必须在分母上,其他的都可以在分子上,也就变成了x2可不可以被x1*x3*x4*...*xn整除的问题 
    //用gcd约分,如果x2==1了,那么就能是整数
    //否则就不行 
    
    #include<iostream>
    #include<cstdio>
    #include<algorithm>
    using namespace std;
    
    const int N=1e4+5;
    
    int T,n;
    int x[N];
    int prime[N],cnt;
    
    int gcd(int a,int b)
    {
        int c;
        while(b)
        {
            c=b;
            b=a%b;
            a=c;
        }
        return a;
    }
    
    int main()
    {
        scanf("%d",&T);
        do
        {
            bool flag=0;
            scanf("%d",&n);
            for(int i=1;i<=n;++i)
                scanf("%d",x+i);
            x[2]/=gcd(x[1],x[2]);
            for(int i=3;i<=n;++i)
            {
                x[2]/=gcd(x[2],x[i]);
                if(x[2]==1)
                {
                    flag=1;
                    break;
                }
            }
            if(flag)
                puts("Yes");
            else
                puts("No");
        }while(--T);
        return 0;
    }
  • 相关阅读:
    HDU 2844 Coins(多重背包)
    HDU 4540 威威猫系列故事——打地鼠(DP)
    Codeforces Round #236 (Div. 2)
    FZU 2140 Forever 0.5
    HDU 1171 Big Event in HDU(DP)
    HDU 1160 FatMouse's Speed(DP)
    ZOJ 3490 String Successor
    ZOJ 3609 Modular Inverse
    ZOJ 3603 Draw Something Cheat
    ZOJ 3705 Applications
  • 原文地址:https://www.cnblogs.com/lovewhy/p/9023497.html
Copyright © 2011-2022 走看看