博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
P4752 Divided Prime
阅读量:4481 次
发布时间:2019-06-08

本文共 1873 字,大约阅读时间需要 6 分钟。

P4752 Divided Prime

题目描述

给定一个数字 AA ,这个 AA 由 a_1,a_2,\cdots,a_Na
1
​ ,a
2
​ ,⋯,a
N
​ 相乘得到。

给定一个数字 BB ,这个 BB 由 b_1,b_2,\cdots,b_Mb

1
​ ,b
2
​ ,⋯,b
M
​ 相乘得到。

如果 \frac{A}{B}

B
A
​ 是一个质数,请输出YES,否则输出NO。

输入输出格式

输入格式:
每个测试点包含多组数据,第一行读入一个整数 TT 表示数据组数,对于每组数据:

第一行输入两个整数 N,MN,M ,分别表示 AA 由 NN 个数字相乘得到, BB 由 MM 个数字相乘得到。

第二行输入 NN 个整数,分别表示组成 AA 的 NN 个数字。

第三行输入 MM 个整数,分别表示组成 BB 的 MM 个数字。

保证对于一个数字,其在 {b_i}b

i
​ 中出现的次数不多于在 {a_i}a
i
​ 中出现的次数。

输出格式:

对于每组数据:

如果 \frac{A}{B}

B
A
​ 是一个质数,请输出YES,否则输出NO。

在输出YES或NO后输出一个换行符。


模拟 + 数学

首先读题可知,分母\(B\)的因子分子\(A\)都有,所以我们把因子排序,双指针模拟约分的过程。

一个约分后的分数为质数,当且约分后分子剩余一个质数

所以我们约分,当分子有合数不能约分是,则不是质数,或者当分子有两个以上质数无法约分是则不是质数

注意\(1\)不是质数,还有分子分母约数的\(1\)要跳过

Code

#include
#include
#include
#include
#include
#include
#include
typedef long long LL;using namespace std;LL RD(){ LL out = 0,flag = 1;char c = getchar(); while(c < '0' || c >'9'){if(c == '-')flag = -1;c = getchar();} while(c >= '0' && c <= '9'){out = out * 10 + c - '0';c = getchar();} return flag * out; }const LL maxn = 1000019;LL T, na, nb;LL a[maxn], b[maxn];bool isprime(LL x){ LL R = sqrt(x * 1.0); for(LL i = 2;i <= R;i++){ if(x % i == 0)return 0; } return 1; }int main(){ T = RD(); while(T--){ memset(a, 0, sizeof(a)); memset(b, 0, sizeof(b)); na = RD();nb = RD(); for(LL i = 1;i <= na;i++)a[i] = RD(); for(LL i = 1;i <= nb;i++)b[i] = RD(); sort(a + 1, a + 1 + na);sort(b + 1, b + 1 + nb); LL p1 = 1, p2 = 1, tot = 0, mem = -1; bool flag = 1; while(a[p1] == 1)p1++;while(b[p2] == 1)p2++; while(p1 <= na){ if(a[p1] == b[p2])p1++, p2++; else{ mem = a[p1]; if(!isprime(mem)){ printf("NO\n"); flag = 0; break; } tot++; if(tot == 2){ printf("NO\n"); flag = 0; break; } p1++; } } if(mem == -1){ printf("NO\n"); continue; } if(flag) printf("YES\n"); } return 0; }

转载于:https://www.cnblogs.com/Tony-Double-Sky/p/9311422.html

你可能感兴趣的文章
快速读入模板
查看>>
\n ^ \t的使用
查看>>
css盒模型
查看>>
探索式测试:测试自动化
查看>>
make install fping
查看>>
面试笔试题
查看>>
MySql可视化工具MySQL Workbench使用教程
查看>>
个人站立会议第二阶段07
查看>>
云时代架构阅读笔记五——Web应用安全
查看>>
IOS 单击手势和cell点击冲突
查看>>
学习_HTML5_day3
查看>>
计算机网络与应用第二次笔记
查看>>
Django之ORM查询
查看>>
学习python第七天
查看>>
Flask基础(07)-->正则自定义转换器
查看>>
C++著名程序库的比较和学习经验(STL.Boost.GUI.XML.网络等等)
查看>>
Spring Boot构建RESTful API与单元测试
查看>>
【JavaScript你需要知道的基础知识~】
查看>>
谷歌搜索语法
查看>>
static 静态变量
查看>>