代码复杂度疑惑???
查看原帖
代码复杂度疑惑???
299690
panyibo楼主2024/9/23 16:35
#include<iostream>
#include<cstdio>
#include<cmath>
#include<bits/stdc++.h>
using namespace std;
long long n,m;
string a[30100];
long long mi[30100][30],ma[30100][30];
int check(int x)
{
    for(int j = 1;j <= n;j++)
    {
        if(j == x) continue;
        for(int k = 1;k <= m;k++)
        {
            if(mi[x][k] == ma[j][k]) return 0;
            if(mi[x][k] > ma[j][k]) return 0;
            if(mi[x][k] < ma[j][k]) break;
        }
    }
    return 1;
}
int main()
{
    //freopen("a.in","r",stdin);
    //freopen("dict.out","w",stdout);
    scanf("%d%d",&n,&m);
    int maxn = -1;
    for(int i = 1;i <= n;i++)
    {
        cin >> a[i];
        int sum = a[i][0] - 'a' + 1;
        maxn = max(maxn,sum);
    }
    if(n == 1 && m == 1)
    {
        cout << "1";
        return 0;
    }
    for(int i = 1;i <=n;i++)
    {
        long long  comp[30];
        memset(comp,0,sizeof(comp));
        for(int j = 0;j < m;j++)
        {
            int sum1 = a[i][j] - 'a' + 1;
            comp[sum1]++;
        }
        int cnt = 1;
        for(int j = 1;j <= 26;j++)
        {
            if(comp[j]!=0)
            {
                for(int h = 1;h <= comp[j];h++)
                {
                    mi[i][cnt] = j;
                    cnt++;
                }
            }
        }
        cnt = 1;
        for(int j = 26;j >= 1;j--)
        {
            if(comp[j]!=0){
                for(int h = 1;h <= comp[j];h++)
                {
                    ma[i][cnt] = j;
                    cnt++;
                }
            }
        }

    }
    for(int i = 1;i <= n;i++)
    {
        if(check(i) == 1) cout << "1";
        else if (check(i) == 0)cout << "0";
    }
    return 0;
}
/* for(int v = 1;v <= m;v++)
           cout << mi[i][v] << " ";
        cout<<endl;
        for(int v = 1;v <= m;v++)
           cout << ma[i][v]<< " ";
        cout<<endl;
        cout << endl;*/
/*
4 7
abandon
bananaa
baannaa
notnotn
*/

好奇这个代码的复杂度是O(n^2)还是O(n^2*m)的

2024/9/23 16:35
加载中...