LeetCode Biweekly Contest 9 4問目 - Minimum Time to Build Blocks [1199]

Source

LeetCode Biweekly Contest 9
問題文

問題概要

省略

解法

省略

cLayversion 20190921-1)のコード

C++に変換後のコードはこちら

#define main dummy_main
{}
#undef main

class Solution {
public:
  int minBuildTime(vector<int>& A, int S) {
    int i, j, k, m, nd, N;
    int cnt[1011];
    int res;
    
    N = A.size();
    sort(A.rbegin(), A.rend());

    res = bsearch_min[int,x,0,1d9][
      rep(i,N+1) cnt[i] = 0;
      cnt[0] = 1;
      m = 0;
      rep(i,N){
        if(cnt[m]==0) m++;
        if(cnt[m]==0) break;
        cnt[m]--;
        k = m * S;
        if(k + A[i] > x) break;

        nd = N - i - 1 - cnt[m];
        for(j=1;nd>0;j++){
          if(k + S*j + A[i] > x) break;
          cnt[m+j]++;
          nd -= cnt[m+j];
        }
      }
    ](i==N);

    return res;
  }
};

Current time: 2024年04月18日16時49分00秒
Last modified: 2019年09月22日02時27分41秒 (by laycrs)
Tags: Competitive_Programming_Incomplete LeetCode
トップページに戻る

Logged in as: unknown user (not login)

ログイン: