AtCoder Regular Contest 107 F問題 - Sum of Abs

Source

AtCoder Regular Contest 107
問題文

問題概要

省略

解法

省略

cLayversion 20201031-1)のコード

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

int N, M, A[300], B[300], U[300], V[300];
{
  ll res = 0;
  maxflow<int,ll> f;
  int node, st, ed;

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

  node = 2*N;
  st = node++;
  ed = node++;
  f.malloc(node);
  f.init(node);
  rep(i,N) f.addEdge(i, i+N, A[i] + abs(B[i]));
  rep(i,M) f.addEdge(U[i]+N, V[i], int_inf);
  rep(i,M) f.addEdge(V[i]+N, U[i], int_inf);
  rep(i,N) if(B[i] > 0) f.addEdge(st, i, 2*abs(B[i]));
  rep(i,N) if(B[i] < 0) f.addEdge(i+N, ed, 2*abs(B[i]));

  rep(i,N) res += abs(B[i]);
  res -= f.solve(st, ed);
  wt(res);
}

Current time: 2021年09月28日08時25分20秒
Last modified: 2020年11月01日02時02分43秒 (by laycrs)
Tags: Competitive_Programming_Incomplete AtCoder AtCoder_Regular_Contest ARC107 ARC_F
トップページに戻る

Logged in as: unknown user (not login)

ログイン: