LeetCode Weekly Contest 254 4問目 - Last Day Where You Can Still Cross [1970]

Source

LeetCode Weekly Contest 254
問題文

問題概要

省略

解法

省略

cLay(version 20210816-1)のコード

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

#define main dummy_main
{}
#undef main

class Solution {
public:
  int latestDayToCross(int X, int Y, vector<vector<int>>& cells) {
    dummy_main();
    int i, j, d = X * Y, **s;
    int node = d, st = node++, ed = node++;
    unionFind uf;
    dimcomp2 dm(X,Y);

    uf.walloc(node,1);
    walloc2d(&s, X, Y);
    rep(i,X) rep(j,Y) s[i][j] = 0;

    rrep(k,d){
      (i, j) = (cells[k][0], cells[k][1]) - 1;
      s[i][j] = 1;
      rep_dist(ni,nj,i,j) if(0 <= nj < Y) {
        if(ni == -1) uf(dm(i,j), st), continue;
        if(ni ==  X) uf(dm(i,j), ed), continue;
        if(s[ni][nj]) uf(dm(i,j), dm(ni,nj));
      }
      if(uf(st) == uf(ed)) break;
    }
    return k;
  }
};

Current time: 2024年04月20日16時05分42秒
Last modified: 2021年08月17日01時57分48秒 (by laycrs)
Tags: Competitive_Programming_Incomplete LeetCode
トップページに戻る

Logged in as: unknown user (not login)

ログイン: