#include<bits/stdc++.h>
using namespace std;
long long a[100005],b[100005];
int main( )
{
// freopen("917.in","r",stdin);
int t;
cin>>t;
while(t--)
{
long long n,x,ans=0,ok=1;
cin>>n>>x;
for(int i=1;i<=n;i++)
{ long long c;
cin>>c;
b[i]=c;
a[i]=c;
ans+=c;
}
while(ok==1)
{
for(int i=1;i<=n;i++)
{
if(b[i]%x!=0)//a[i]%x!=0
{
ok=0;
break;
}
else {
ans+=a[i];
b[i]/=x;
}
}
}
cout<<ans<<endl;
}
}
本来是想筛出每个数最多是x的多少次幂,会在哪里被卡,然后找到特定的k*p了事,原来模拟也能过..
CF1471B Strange List 一点点找规律+模拟
原文:https://www.cnblogs.com/liyishui2003/p/15305791.html