第一回 アルゴリズム実技検定 過去問 L問題 - グラデーション / Gradation

Source

第一回 アルゴリズム実技検定 過去問
問題文

問題概要

省略

解法

省略

cLayversion 20200119-1)のコード

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

int N, M, X[35], Y[35], C[35];

wgraph<double> g;
int ns[5];
int n, m, a[2000], b[2000]; double c[2000];

{
  int x, y;
  double res = double_inf, tmp;
  rd(N,M,(X,Y,C)(N+M));

  rep(mask,1<<M){
    n = N;
    rep(i,M) ns[i] = -1;
    rep(i,M) if(mask & 1<<i) ns[i] = n++;
    m = 0;
    rep(i,N+M) if(i < N || ns[i-N] >= 0) rep(j,i+1,N+M) if(j < N || ns[j-N] >= 0){
      x = if[i < N, i, ns[i-N]];
      y = if[j < N, j, ns[j-N]];
      tmp = sqrt( (X[i]-X[j])**2 + (Y[i]-Y[j])**2 );
      if(C[i] != C[j]) tmp *= 10;
      arrInsert(m,m,a,x,b,y,c,tmp);
    }
    g.setEdge(n,m,a,b,c);
    res <?= g.MST_Prim_cost();
  }
  wt(res);
}

Current time: 2024年04月18日17時28分14秒
Last modified: 2020年01月19日05時24分34秒 (by laycrs)
Tags: Competitive_Programming_Incomplete AtCoder
トップページに戻る

Logged in as: unknown user (not login)

ログイン: