求时间复杂度
查看原帖
求时间复杂度
1125106
11514zbs楼主2024/8/5 15:13
#include <cstdio>
#include <algorithm>

using namespace std;

long long a[1000005], b[1000005], n, m, j = 0, mi, x;

int main()
{
    scanf("%lld %lld", &n, &m);
    for (long long i = 0; i < n; i++)
    {
        scanf("%lld", &a[i]);
    }
    for (long long i = 0; i < m; i++)
    {
        scanf("%lld", &b[i]);
    }
    sort(a, a + n);
    sort(b, b + m);
    for (long long i = 0; i < m; i++)
    {
        for (; a[j] < b[i] && j < n; j++){}
		if (j == 0)
		{
			mi += abs(a[j] - b[i]);
		}
        else if (abs(a[j] - b[i]) < b[i] - a[j - 1])
        {
            mi += abs(a[j] - b[i]);
        }
        else
        {
            mi += b[i] - a[j - 1];
        }
    }
    printf("%lld\n", mi);
    return 0;
}

为什么我的比二分快近 100ms100ms ,题解区都没有(?如有轻喷)跟我类似的代码?

2024/8/5 15:13
加载中...