24.10.10 hw4
1
C
A
C
B
CB
2
int temp[N*M],s[N*M];
void sort(int l,int r){
if(l==r) return;
int mid=(l+r)/2;
sort(l,mid);
sort(mid+1,r);
int i=l,j=mid+1,p=0;
while(i<=mid&&j<=r){
if(a[i]>a[j]) temp[++p]=a[j],j++;
else temp[++p]=a[i],i++;
}
while(i<=mid) temp[++p]=a[i],i++;
while(j<=r) temp[++p]=a[i],j++;
p=0;
for(int i=l;i<=r;i++) s[i]=temp[++p];
}
void check(int (*a)[N]){
int p=0;
for(int i=1;i<=m;i++){
for(int j=1;j<=n;j++){
s[++p]=a[i][j];
}
}
sort(1,m*n);
for(int i=1;i<m*n;i++){
if(s[i]==s[i+1]){
puts("no");
return;
}
}
puts("yes");
}
复杂度分析:在排序中,每次递归排序的区间长度减半,共递归 层,同样层数的递归中时间复杂度总和为 ,因此排序复杂度为 。
在判断中,遍历所有元素一遍,复杂度 。
因此,总复杂度为 。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
2021-10-10 LOJ6507 「雅礼集训 2018 Day7」A