题目链接:

http://acm.nyist.edu.cn/JudgeOnline/problem.php?pid=1013

描述

给出一个这样的除法表达式:X1/X2/X3/···/Xk,其中Xi是正整数。除法表达式应当按照从左到右的顺序求和,例如表达式1/2/1/2的值为1/4。但是可以在表达式中嵌入括号以改变计算顺序,例如表达式(1/2)/(1/2)的值为1.

输入
首先输入一个N,表示有N组测试数据,
每组数据输入占一行,为一个除法表达式,
输入保证合法。
使表达式的值为整数。k<=10000,Xi<=100000000.
输出
输出YES或NO
样例输入
1
1/2/1/2
样例输出
YES
 /*
问题
给出一个除法表达式x1/x2/x3/.../xk,其中xi是正整数,问能够通过在表达式中嵌入括号以改变计算顺序,使得表达式的值为1 解题思路
直观的想法暴力,但是随即又想暴力的方法是不行的,因为嵌入括号可以是双重嵌套的。
看了解析,先将式子变成E=x1/x2/x3/.../xk=(x1/x3/.../xk)/x2,现在的问题变成了判断E是否为整数
采用直接约分,那么每次约掉xi和x2的最大公约数,最后看x2是否为1即可。
这类题目刚开始看的时候好像无从下手,但是仔细观察将式子经过适当的变型,就可以将问题转化成熟悉的问题,进而求解。 具体解法,采用scanf将表达式读入,预处理(将'/'变成' ')后将其赋值为一个string类,再采用流式一个一个读入数字存入x,经过判断
输出对应结果即可。 易错分析,刚开始读入的时候以为都是一位数的数字,后来猛地发现可以是多位数字,这种错误真的是,多读题很重要。
*/
#include<cstdio>
#include<cstring>
#include<string>
#include<cctype>
#include<vector>
#include<iostream>
#include<sstream>
using namespace std; const int N=;
char s[N];
int x[N]; int judge(int *x,int len);
int gcd(int a,int b){
return b==?a:gcd(b,a%b);
}
int lcm(int a,int b){
return a/gcd(a,b)*b;
} vector<int> vx;
string vs;
int main()
{
int T,len,i,j,k,vxx;
scanf("%d",&T);
while(T--){
scanf("%s",s);
len=strlen(s);
for(i=;i<len;i++){
if(s[i] == '/')
s[i] = ' ';
}
vs=s;
stringstream ss(vs);
j=;
while(ss >> vxx) x[j++]=vxx; /*for(i=0;i<j;i++)
printf("%d ",x[i]);
printf("\n");*/ if(judge(x,j))
printf("YES\n");
else
printf("NO\n");
}
return ;
} int judge(int *x,int len)
{
x[] /= gcd(x[],x[]);
for(int i=;i<len;i++)
x[] /= gcd(x[i],x[]);
return x[] == ;
}

NYOJ 1013 除法表达式(欧几里德算法+唯一分解定理)的更多相关文章

  1. UVa10375:选择与除法(唯一分解定理)

    The binomial coefficient C(m,n) is defined as Given four natural numbers p, q, r, and s, compute the th ...

  2. B - Common Divisors (codeforces)数论算法基本定理,唯一分解定理模板

    You are given an array aa consisting of nn integers. Your task is to say the number of such positive ...

  3. NYOJ-1013除法表达式

    除法表达式 时间限制:1000 ms  |  内存限制:65535 KB 难度:3   描述 给出一个这样的除法表达式:X1/X2/X3/···/Xk,其中Xi是正整数.除法表达式应当按照从左到右的顺 ...

  4. 欧几里德算法及其扩展(推导&&模板)

    有关欧几里德算法整理: 1.一些相关概念: <1>.整除性与约数: ①一个整数可以被另外一个整数整除即为d|a(表示d整除a,通俗的说是a可以被d整除),其含义也可以说成,存在某个整数k, ...

  5. codeforces C. Primes and Multiplication(快速幂 唯一分解定理)

    题目链接:http://codeforces.com/contest/1228/problem/C 题解:给定一个函数f,g,题目有描述其中的表达式含义和两者之间的关系. 然后计算: 首先把给定的x用 ...

  6. Sicily1099-Packing Passengers-拓展欧几里德算法

    最终代码地址:https://github.com/laiy/Datastructure-Algorithm/blob/master/sicily/1099.c 做这题的时候查了别人的做法花了半天都没 ...

  7. 欧几里德算法gcd及其拓展终极解释

    这个困扰了自己好久,终于找到了解释,还有自己改动了一点点,耐心看完一定能加深理解   扩展欧几里德算法-求解不定方程,线性同余方程. 设过s步后两青蛙相遇,则必满足以下等式: (x+m*s)-(y+n ...

  8. hdu1215 正整数唯一分解定理应用

    B - (例题)因子和 Crawling in process... Crawling failed Time Limit:1000MS     Memory Limit:32768KB     64 ...

  9. POJ - 1845 G - Sumdiv (唯一分解定理)

    Consider two natural numbers A and B. Let S be the sum of all natural divisors of A^B. Determine S m ...

随机推荐

  1. power designer简单教程

    1.file->new model 2.根据菜单或功能模型新建physical diagram(当然也可以新建package) 选中项目,右键——>new ->physical di ...

  2. DevExpress控件汉化教程详解

    所有Developer Express .NET产品都有本地化资源,比如按钮属性,控件属性描述,菜单项,确认和错误的信息等等,所有这些资源字符串可以很容易地被翻译成各种语言. 先看下面汉化前后的图片: ...

  3. #loj3089 [BJOI2019]奥术神杖

    卡精度好题 最关键的一步是几何平均数的\(ln\)等于所有数字取\(ln\)后的算术平均值 那么现在就变成了一个很裸的01分数规划问题,一个通用的思路就是二分答案 现在来考虑二分答案的底层怎么写 把所 ...

  4. JQuery Mobile - 导航栏选中状态代码

    class="ui-btn-active" 参考: https://wizardforcel.gitbooks.io/w3school-jqmobile/content/8.htm ...

  5. [CTSC2008]网络管理(整体二分+树剖+树状数组)

    一道经典的带修改树链第 \(k\) 大的问题. 我只想出三个 \(\log\) 的解法... 整体二分+树剖+树状数组. 那不是暴力随便踩的吗??? 不过跑得挺快的. \(Code\ Below:\) ...

  6. 「PKUWC2019」拓扑序计数(状压dp)

    考场只打了 \(52\) 分暴力...\(ljc\) 跟我说了一下大致思路,我回去敲了敲. \(f[i]\) 表示状态为 \(i\) 时的方案数.我们用二进制 \(0/1\) 表示不选/选点 \(i\ ...

  7. 读配置文件property文件

    import java.io.IOException;import java.util.Properties; import org.springframework.core.io.support.P ...

  8. 带你走进二进制-一次APT攻击分析

    原文:https://osandamalith.com/2017/06/04/apt-attack-in-bangladesh/ 由prison翻译整理,首发i春秋   引言;   这是一次来自遥远国 ...

  9. Linux学习笔记-基本操作1

    1>. 命令解析器2>. Linux快捷键3>. Linux 系统目录结构4>. 用户目录5>. 文件和目录操作6>. 文件和目录的属性7>. 文件权限, 用 ...

  10. SQL 将一列多行数据合并为一行

    原表数据: 期望结果: 使用STUFF + FOR XML PATH即可实现以上效果 执行以下SQL: , , '') AS Course FROM Student AS T 可以看到输出结果与期望结 ...