第4个点TLE求助
查看原帖
第4个点TLE求助
717971
liuyi0905楼主2023/8/16 09:57
#include<bits/stdc++.h>
#define int long long
using namespace std;
int t,n,k,a,vis[300005],flag;
bool check(int x){
	while(x>0){
		int r=0,b=1;
		while(x>=b)r++,b*=k;
		b/=k,r--,x-=b,vis[r]++;
		if(vis[r]>1)return 1;
	}
	return 0;
}
signed main(){
	cin>>t;
	while(t--){
		memset(vis,0,sizeof(vis));
		flag=1;
		cin>>n>>k;
		for(int i=1;i<=n;i++){
			cin>>a;
			if(!a)continue;
			if(check(a)){puts("NO"),flag=0;break;}
		}
		if(flag)puts("YES");
	}
	return 0;
}

调了半天,不知道哪里错了。

2023/8/16 09:57
加载中...