社区讨论

关于cf

灌水区参与者 5已保存回复 5

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
5 条
当前快照
1 份
快照标识符
@lod9sdua
此快照首次捕获于
2023/10/31 03:05
2 年前
此快照最后确认于
2023/11/05 13:31
2 年前
查看原帖
为什么时间复杂度算出了大概是1e9 , 在cf上也能过啊
CPP
void solve(){
	scanf("%d",&n);
	For(i,1,n) scanf("%d",&a[i]),vis[i]=0;
	int p=1;
	For(i,2,n) if (a[i]>a[p]) p=i;
	vis[p]=1;
	printf("%d ",a[p]);
	int G=a[p];
	For(i,2,n){
		int np=-1,nv=0;
		For(j,1,n) if (!vis[j]){
			int val=gcd(G,a[j]);
			if (val>nv) nv=val,np=j;
		}
		vis[np]=1;
		printf("%d ",a[np]);
		G=gcd(G,a[np]);
	}
	puts("");
}
int main(){
	int T;
	scanf("%d",&T);
	while (T--) solve();
}
这复杂度应该是O(Tn2)O(Tn^2)n,T<=1e3n , T<= 1e3

回复

5 条回复,欢迎继续交流。

正在加载回复...