acwing——倍增-ag九游会j9官方网站

ag九游会j9官方网站-j9九游会登录入口首页新版
acwing——倍增
2023-05-23
70 浏览
江海入海,知识涌动,这是我参与江海计划的第15篇。
二、倍增

1、题目
给定一个长度为 n 的整数序列 a1,a2,…,an。

你可以对该序列进行任意次倍增操作(也可以不进行任何操作)。

每次倍增操作可以任选序列中的一个元素,并将其乘以 2 或乘以 3。

我们的目标是让序列中所有元素的值都相等。

请你判断,目标是否能够实现。

输入格式

第一行包含整数 n。

第二行包含 n 个整数 a1,a2,…,an。

输出格式

如果可以让序列中所有元素的值都相等,则输出 yes,否则,输出 no。

数据范围

前 66 个测试点满足 2≤n≤10。
所有测试点满足 2≤n≤10⁵,1≤ai≤10⁹。
输入样例1:
java
复制代码
4
75 150 75 50
输出样例1:
java
复制代码
yes
输入样例2:
java
复制代码
3
100 150 250
输出样例2:
java
复制代码
no
 2、题目解读
我们可以进行任意次倍增操作,将其乘以 2 或乘以 3,需要将序列都变成同一个数,如果可以,则说明这个序列所有数对除去 2,3 的所有质因子后剩余质因子的乘积都相同。
3、代码
java
复制代码
import java.util.scanner;
public class main {
public static void main(string[] args) {
scanner sc=new scanner(system.in);
int n=sc.nextint();
int[] arr=new int[n];
for (int i=0;i<n;i){
arr[i]=sc.nextint();
while (arr[i]%2==0)
arr[i]/=2;
while (arr[i]%3==0)
arr[i]/=3;
if (i!=0&&arr[i]!=arr[i-1]){//判断也同时进行着
system.out.println("no");
return;
}
}
system.out.println("yes");
}
}
如果觉得还不错的话,记得点赞收藏哦!万分感谢!
avatarname
后发表内容
您的社区活跃积分 3,登录后即可领取  
网站地图