Модуль: محاسبه پیچیدگی مجانبی


Задача

9/9

محاسبه مجانبی - 9

Задача

برای کد زیر، مجانبی را پیدا کنید:
#include <bits/stdc++.h>
استفاده از namespace std;

int اصلی()
{
int n, m;
بردار < بردار<int> > up1(n، وکتور <int>(m));
int و = 0;
برای (int و = 1; i <= n; i++)
{
بردار <int> L(m + 1، 1< /span>)، R(m + 1، m);
پشته <int> q;
برای (int j = 1; j <= m; j++)
{
در حالی که (!q.empty() && up1 [i][j] < up1[i][q.top()])
{
R[q.top()] = j - 1;
q.pop();
}
qpush(j);
}
در حالی که (!q.empty())
q.pop();
برای (int j = m; j >= 1; j--)
{
در حالی که (!q.empty() && up1 [i][j] < up1[i][q.top()])
{
L[q.top()] = j + 1;
q.pop();
}
qpush(j);
}
برای (int j = 1; j <= m; j++)
ans = max(ans, up1[i][j] * (R[j] < span style="color:#666666">- L[j] + 1))؛
}
cout << ans;
بازگشت 0;
}

1) O(n+m)      2) O(nm)       3) O(n^2*m)      4) O(n*m^2)

Выберите правильный ответ, либо введите его в поле ввода

Комментарий учителя