ds4

ds4

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");
}

复杂度分析:在排序中,每次递归排序的区间长度减半,共递归 O(lognm) 层,同样层数的递归中时间复杂度总和为 O(nm),因此排序复杂度为 O(nmlognm)
在判断中,遍历所有元素一遍,复杂度 O(nm)
因此,总复杂度为 O(nmlognm)

posted @   suxxsfe  阅读(218)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
历史上的今天:
2021-10-10 LOJ6507 「雅礼集训 2018 Day7」A

This blog has running: 1856 days 1 hours 59 minutes 40 seconds

Copyright © 2025 suxxsfe
Powered by .NET 9.0 on Kubernetes
点击右上角即可分享
微信分享提示