DoubleSum(牛客)
突破点和关键点就在于那个c的k次方,为啥是c的k次方,肯定是有奇效的
#include
using namespace std;
#define lowbit(x) x&(-x)
#define ll long long
const int maxn=1e5+5;
ll a[maxn],ans;
ll fast_mi(ll a,ll b){
ll sum=1;
while(b){
if(b&1)sum*=a;
a*=a;
b>>=1;
}
return sum;
}
int main(){
int n,c,x;
cin>>n>>c;
int up=1;while(fast_mi(c,up)<=1e9)up++;
for(int i=1;i<=n;i++)cin>>a[i];
for(int k=up;k>=1;k--){
ll mod=fast_mi(c,k);
mapmp;
for(int i=1;i<=n;i++){
mp[a[i]%mod]++;
if(mp[a[i]%mod]>=2){
//cout<<"mod="<