这个时间复杂度对吗???
  • 板块P2080 增进感情
  • 楼主BIOS
  • 当前回复6
  • 已保存回复6
  • 发布时间2023/7/16 21:45
  • 上次更新2023/11/3 09:26:51
查看原帖
这个时间复杂度对吗???
833124
BIOS楼主2023/7/16 21:45
#include <iostream>
#include <cmath>
using namespace std;
const int N = 35;
int a[N], b[N], n, m, minv = 0x3f3f3f3f;
void dfs(int pos, int sum, int l, int r)
{
    int k = fabs(r - l);
    if (sum >= m)
        minv = min(minv, k);
    if (pos > n)
        return;
    dfs(pos + 1, sum, l, r);
    dfs(pos + 1, sum + a[pos] + b[pos], l + a[pos], r + b[pos]);
}
int main()
{
    cin >> n >> m;
    for (int i = 1; i <= n; i++)
        cin >> a[i] >> b[i];
    dfs(1, 0, 0, 0);
    if (minv == 0x3f3f3f3f)
        minv = -1;
    cout << minv << endl;
}

这是数据问题还是我的问题???这种二选一的爆搜时间复杂度不是二的指数级别的吗,2的30次方凭什么能过啊??? 验证码:c9nm

2023/7/16 21:45
加载中...