AtCoder Beginner Contest 164 E問題 - Two Currencies

Source

AtCoder Beginner Contest 164
問題文

問題概要

省略

解法

省略

cLayversion 20200430-1)のコード

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

int N, M, S, U[100], V[100], A[100], B[100], C[50], D[50];

int nn, mm, a[1d6], b[1d6]; ll c[1d6];
wgraph<ll> g;
ll dist[1d6];
ll res[50];
{
  int i, j, k, nk, m;

  rd(N,M,S,(U--,V--,A,B)(M),(C,D)(N));

  int mx = (N-1)*50+1;
  dimcomp2 dm(mx);
  S <?= mx - 1;
  nn = N * mx;
  rep(i,N) rep(j,mx){
    k = dm(i,j);
    nk = dm(i, min(mx-1,j+C[i]));
    arrInsert(mm, mm, a, k, b, nk, c, (ll)D[i]);
  }

  rep(m,M) rep(j,A[m],mx){
    k = dm(U[m], j);
    nk = dm(V[m], j-A[m]);
    arrInsert(mm, mm, a, k, b, nk, c, (ll)B[m]);

    k = dm(V[m], j);
    nk = dm(U[m], j-A[m]);
    arrInsert(mm, mm, a, k, b, nk, c, (ll)B[m]);
  }

  g.setDirectEdge(nn, mm, a, b, c);
  g.getDist(dm(0,S), dist);

  rep(i,N) res[i] = ll_inf;
  rep(i,N) rep(j,mx) res[i] <?= dist[dm(i,j)];
  rep(i,1,N) wt(res[i]);
}

Current time: 2021年09月19日20時41分35秒
Last modified: 2020年04月30日03時23分19秒 (by laycrs)
Tags: Competitive_Programming_Incomplete AtCoder AtCoder_Beginner_Contest ABC164 ABC_E
トップページに戻る

Logged in as: unknown user (not login)

ログイン: