AtCoder Beginner Contest 184 E問題 - Third Avenue

Source

AtCoder Beginner Contest 184
問題文

問題概要

省略

解法

省略

cLayversion 20201123-1)のコード

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

//working_memory=500MB
int X, Y;
char S[2000][2002];
int n, m, a[3d7], b[3d7], c[3d7];
wgraph<int> g;
{
  int i, j, ni, nj, st, ed;
  const int dx[4] = {-1, 1, 0, 0};
  const int dy[4] = {0, 0, -1, 1};
  dimcomp2 dm;
  rd(X,Y,S(X));
  dm.set(X,Y);
  n = X * Y + 26;
  
  rep(i,X) rep(j,Y) if(S[i][j]=='S') st = dm(i,j);
  rep(i,X) rep(j,Y) if(S[i][j]=='G') ed = dm(i,j);

  rep(i,X) rep(j,Y) if('a' <= S[i][j] <= 'z'){
    arrInsert(m, m, a, dm(i,j), b, X*Y+S[i][j]-'a', c, 1);
    arrInsert(m, m, a, X*Y+S[i][j]-'a', b, dm(i,j), c, 0);
  }
  rep(i,X) rep(j,Y) if(S[i][j] != '#') rep(d,4){
    (ni, nj) = (i + dx[d], j + dy[d]);
    if(0 <= ni < X && 0 <= nj < Y && S[ni][nj] != '#') arrInsert(m, m, a, dm(i,j), b, dm(ni,nj), c, 1);
  }
  g.setDirectEdge(n, m, a, b, c);
  wt(g.getDist01(st,ed));
}

Current time: 2021年09月18日05時32分46秒
Last modified: 2020年11月23日17時34分07秒 (by laycrs)
Tags: Competitive_Programming_Incomplete AtCoder AtCoder_Beginner_Contest ABC184 ABC_E
トップページに戻る

Logged in as: unknown user (not login)

ログイン: