https://www.luogu.org/problemnew/show/P2651
没写出来,其实和P4702是一个套路,脑子没转过来,惭愧了
分析过程:
两个两个看如果想把分母翻到上面来,则该分数前面一定要有一个除号,因此a2一定在分母里面,a1一定在分子里面。其他ai都可以通过加括号的方式在分子分母都可以,因此只要保证a1,a3,a4...an的乘积被a2整除就可以了。
代码:
#include<bits/stdc++.h>
using namespace std;
int gcd(int x,int y)
{
return y==0?x:gcd(y,x%y);
}
int main()
{
int n,m,tmp;
vector<int> v;
cin>>n;
while(n--)
{
cin>>m;
for(int i=0;i<m;i++)
{
cin>>tmp;
v.push_back(tmp);
}
if(m>1)
{
v[1]/=gcd(v[0],v[1]);
for(int i=2;i<m;i++)
{
v[1]/=gcd(v[i],v[1]);
}
if(v[1]==1)
cout<<"Yes"<<endl;
else
cout<<"No"<<endl;
}
else
cout<<"Yes"<<endl;
v.clear();
}
return 0;
}
网友评论