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<iostream>
#include<cstdio>
#include<queue>
#include<cstring>
#include<algorithm>
#include<climits>
#include<cmath>
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;
}

P4752 Divided Prime的更多相关文章

  1. 「LuoguP4752」牧 Divided Prime(判质数

    Description 给定一个数字 A,这个 A 由 a1,a2,⋯,aN相乘得到. 给定一个数字 B,这个 B 由 b1,b2,⋯,bM相乘得到. 如果 A/B 是一个质数,请输出YES,否则输出 ...

  2. 【LGR-049】洛谷7月月赛

    Preface Luogu八月月赛都结束了我才来补七月月赛 这次月赛还是很狗的,在绍一的晚上恰逢刮台风,然后直接打到一半断网了 结果都没有交上去GG 感觉这次难度适中,解法也比较清新自然吧,十分给个九 ...

  3. 【堆栈应用一】一个数divided=几个最小质因数的乘积

    /******************************************堆栈:一个数divided几个质因数(质因数的乘积为N)***************************** ...

  4. hdu 5594 ZYB's Prime 最大流

    ZYB's Prime Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=5 ...

  5. Summary: Prime

    最近遇到很多问题都跟Prime有关,于是总结一下: Prime definition:A prime number (or a prime) is a natural number greater t ...

  6. ZOJ - 3483 - Gaussian Prime

    先上题目: Gaussian Prime Time Limit: 3 Seconds      Memory Limit: 65536 KB In number theory, a Gaussian ...

  7. [Algorithm] Finding Prime numbers - Sieve of Eratosthenes

    Given a number N, the output should be the all the prime numbers which is less than N. The solution ...

  8. about how to determine a prime number

    (1) if divided by 2 or 3, then no; (2) we only have to go through prime factors; because a composite ...

  9. Java 素数 prime numbers-LeetCode 204

    Description: Count the number of prime numbers less than a non-negative number, n click to show more ...

随机推荐

  1. [T-ARA][너 때문에 미쳐][因为你而疯了]

    歌词来源:http://music.163.com/#/song?id=5402880 作曲 : 赵英秀/김태현 [作曲 : 赵英秀/k/gim-Tae-hyeon] 作词 : 辉星 [作词 : 辉星 ...

  2. How to pass an Amazon account review

    Have you ever sold products on Amazon? How about sold so much within the first week that amazon deci ...

  3. .NET 4.0 Tuple 元组

    Tuple是.NET 4.0的新特性,主要功能是动态返回数据结构,也可以用做临时数据结构. 原来做一些功能时需要一个方法返回几个值,有两种方法: 1. 非常难看.难用的OUT参数: 2. 新写一个实体 ...

  4. win10 redis安装教程

    下载解压,没什么好说的,在解压后的目录下有以下这些文件: 在 命令行 启动服务端 redis目录下执行: redis-server.exe redis.windows.conf 如果需要 开机启动:执 ...

  5. ES6的新特性(15)——Promise 对象

    Promise 对象 Promise 的含义 Promise 是异步编程的一种解决方案,比传统的解决方案——回调函数和事件——更合理和更强大.它由社区最早提出和实现,ES6 将其写进了语言标准,统一了 ...

  6. nginx 根据get参数重定向(根据电视访问的mac地址传递的值,来重定向访问别的url地址,这样就可以进行单台的测试环境。。)

    背景是这样的: 公司要做所有客户端的迁移到别的云平台,但又担心会有问题,所以考虑分批次迁移过去,这样就需要迁移部分用户,因为客户端刷但都是统一但rom包,不能轻易发生改动,所以决定用重定向方式将部分客 ...

  7. 3D打印产业链全景图

  8. asp.netcore mvc 权限拦截

    1-背景介绍 需要做一个简单权限系统,基于 角色,用户,菜单 的模式 基于IActionFilter全局拦截,在内部跳转或者浏览器跳转的时候,拦截是成功的,当通过AJAX 请求的时候,页面就不会跳转 ...

  9. Thrift语法参考

    1.Types Thrift类型系统包括预定义基本类型,用户自定义结构体,容器类型,异常和服务定义 (1) 基本类型 bool: 布尔类型,占一个字节 byte: 有符号字节 i16:16位有符号整型 ...

  10. ViewPager、Fragment、Matrix综合使用实现Tab滑页效果

    原文地址:http://www.cnblogs.com/kross/p/3372987.html 我们实现一个上面是一个可以左右滑动的页面,下面是三个可点击切换的tab按钮,tab按钮上还有一个激活条 ...