求助时间复杂度相关
  • 板块学术版
  • 楼主Demeanor_Roy
  • 当前回复7
  • 已保存回复7
  • 发布时间2023/8/8 17:27
  • 上次更新2023/11/3 05:09:24
查看原帖
求助时间复杂度相关
297806
Demeanor_Roy楼主2023/8/8 17:27

大概抽象一下就是有一个长度为 nn 的不降的数列,数列权值只有 mm 种,我可以在 O(n)O(n) 求某个位置的值。那我用下面这份伪代码,时间复杂度是 O(nmlog⁡n)O(nm \log n) 的吗?

void solve(int l,int r,int L,int R)
{
	if(L==R){for(int i=l;i<=r;i++) ans[i]=L;return;}
	int mid=(l+r)>>1,x=Query(mid);
	ans[mid]=x;solve(l,mid-1,L,x);solve(mid+1,r,x,R);
}
//Query是O(n)的 
//调用solve(1,n,1,m) 
2023/8/8 17:27
加载中...