当前位置:网站首页>C. Mere Array
C. Mere Array
2022-08-09 21:55:00 【秦小咩】
C. Mere Array
time limit per test
2 seconds
memory limit per test
256 megabytes
input
standard input
output
standard output
You are given an array a1,a2,…,ana1,a2,…,an where all aiai are integers and greater than 00.
In one operation, you can choose two different indices ii and jj (1≤i,j≤n1≤i,j≤n). If gcd(ai,aj)gcd(ai,aj) is equal to the minimum element of the whole array aa, you can swap aiai and ajaj. gcd(x,y)gcd(x,y) denotes the greatest common divisor (GCD) of integers xx and yy.
Now you'd like to make aa non-decreasing using the operation any number of times (possibly zero). Determine if you can do this.
An array aa is non-decreasing if and only if a1≤a2≤…≤ana1≤a2≤…≤an.
Input
The first line contains one integer tt (1≤t≤1041≤t≤104) — the number of test cases.
The first line of each test case contains one integer nn (1≤n≤1051≤n≤105) — the length of array aa.
The second line of each test case contains nn positive integers a1,a2,…ana1,a2,…an (1≤ai≤1091≤ai≤109) — the array itself.
It is guaranteed that the sum of nn over all test cases doesn't exceed 105105.
Output
For each test case, output "YES" if it is possible to make the array aa non-decreasing using the described operation, or "NO" if it is impossible to do so.
Example
input
Copy
4 1 8 6 4 3 6 6 2 9 4 4 5 6 7 5 7 5 2 2 4
output
Copy
YES YES YES NO
Note
In the first and third sample, the array is already non-decreasing.
In the second sample, we can swap a1a1 and a3a3 first, and swap a1a1 and a5a5 second to make the array non-decreasing.
In the forth sample, we cannot the array non-decreasing using the operation.
=========================================================================
非常巧妙的一个题目,首先来说,一个无规则数列进行排序,只需要将排序之后与原位置不对应的位置进行对比即可,也就是排序之后与排序之后位置上数字不对应的需要进行排序。
而我们根据冒泡排序等各种排序规则,两元素若能够自由交换,那么一定能够排序成功,而本题要求的条件略有苛刻,那就是要直接交换两个元素的话,必须满足gcd=mina,这个条件太苛刻了,我们冒泡排序无法成功。但是我们可以将这个条件再降一下标准
a b能够整除min,那么一定能够交换
证明如下
x min y 其中gcd(x,y)=k min 也就是x,y目前无法进行交换
min x y
y x min
y min x
三步走,完成交换,min位置不变
#include<iostream>
#include<cstdio>
#include<queue>
# include<algorithm>
using namespace std;
int b[100000+10];
int a[100000+10];
int main()
{
int t;
cin>>t;
while(t--)
{
int n,flag=0;
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>a[i];
b[i]=a[i];
}
sort(b+1,b+1+n);
for(int i=1;i<=n;i++)
{
if(a[i]!=b[i])
{
if(b[i]%b[1])
{
flag=1;
break;
}
}
}
if(flag)
{
cout<<"No"<<endl;
}
else
{
cout<<"YES"<<endl;
}
}
return 0;
}边栏推荐
- Multiple reasons for MySQL slow query
- STC8H Development (15): GPIO Drives Ci24R1 Wireless Module
- Use zeros(), ones(), fill() methods to generate data in TF
- Easyui 表单验证「建议收藏」
- 一文让你快速了解隐式类型转换【整型提升】!
- 工作经验-组件封装(拖拽排序组件)
- 6 rules to sanitize your code
- Usage of placeholder function in Tensorflow
- POWER SOURCE ETA ETA Power Repair FHG24SX-U Overview
- nvm下node安装;node环境变量配置
猜你喜欢

“稚晖君”为2022昇腾AI创新大赛打call&nbsp;期待广大开发者加入

你真的了解乐观锁和悲观锁吗?

2022 首期线下 Workshop!面向应用开发者们的数据应用体验日来了 | TiDB Workshop Day

开发者必备:一文快速熟记【数据库系统】和【软件开发模型】常用知识点

2022年中国第三方证券APP创新专题分析
![[Cloud Native] 4.2 DevOps Lectures](/img/d0/2cd32351234401fdfecd3a829a639d.png)
[Cloud Native] 4.2 DevOps Lectures
![[Microservice~Nacos] Configuration Center of Nacos](/img/c3/9d8fb0fd49a0ebab43ed604f9bd1cc.png)
[Microservice~Nacos] Configuration Center of Nacos
Quotefancy ,提供鼓舞人心语录的壁纸网站 - 倾城之链

一文让你快速了解隐式类型转换【整型提升】!

Arcgis工具箱无法使用,显示“XML包含错误“的解决方法
随机推荐
JS–比想象中简单
Js fifteen interview questions (with answers)
接口自动化测试实践指导(上):接口自动化需要做哪些准备工作
Solution: Edu Codeforces 109 (div2)
Deceptive Dice
聊聊SQL语句中 DDL 、DML 、DQL 、DCL 分别是什么
FileZilla搭建FTP服务器图解教程
台风生成,广州公交站场积极开展台风防御安全隐患排查
Leetcode 93 IP addresses
重要的不是成为海贼王,而是像路飞一样去冒险
任务流执行器是如何工作的?
你的 Link Button 能让用户选择新页面打开吗?
【EF】 更新条目时出错。有关详细信息,请参见内部异常。[通俗易懂]
JSON 基本使用
在“企业通讯录”的盲区,融云的边界与分寸
Reinforcement Learning Weekly Issue 57: DL-DRL, FedDRL & Deep VULMAN
Space not freed after TRUNCATE table
Simple questions peek into mathematics
leetcode 38. 外观数列
2.1.5 大纲显示问题