Codeforces Good Bye 2021: 2022 is NEAR F問題 - Tricolor Triangles

Source

Codeforces Good Bye 2021: 2022 is NEAR F問題 (3000pt)
Problem description

問題概要

省略

解法

省略

cLay(version 20211231-1)のコード

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

//no-unlocked
#define MD 3

Modint **aa, *b, *x;
walloc2d(&aa, 1d4, 257);
walloc1d(&b, 1d4);
walloc1d(&x, 257);
REP(rd_int()){
  int @N, @M, A[M], B[M], C[M], ind[M], m[N][N], r = 0, c = 0, xx, yy, zz, v;
  rd((A--,B--,C--)(M));
  rep(i,N) rep(j,N) m[i][j] = -1;
  rep(i,M) m[A[i]][B[i]] = m[B[i]][A[i]] = i;
  rep(i,M) if(C[i] < 0) ind[i] = c++;

  rep(i,N) rep(j,i+1,N) rep(k,j+1,N) if(m[i][j]>=0 && m[i][k]>=0 && m[j][k]>=0){
    (xx, yy, zz) = (m[i][j], m[i][k], m[j][k]);
    v = max(0, C[xx]) + max(0, C[yy]) + max(0, C[zz]);
    if(C[xx] >= 0 && C[yy] >= 0 && C[zz] >= 0) if(v%3) wt(-1), break_break_break_continue;

    rep(l,c) aa[r][l] = 0;
    if(C[xx] < 0) aa[r][ind[xx]] = 1;
    if(C[yy] < 0) aa[r][ind[yy]] = 1;
    if(C[zz] < 0) aa[r][ind[zz]] = 1;
    b[r] = -v;
    r++;
  }

  if(LinearEquation(r,c,aa,b,x) == -1) wt(-1), continue;
  rep(i,M) if(C[i] < 0) C[i] = (int)x[ind[i]];
  wt(C(M)+1);
}

Current time: 2024年05月19日03時56分17秒
Last modified: 2021年12月31日18時02分39秒 (by laycrs)
Tags: Competitive_Programming_Incomplete Codeforces Codeforces_Good_Bye_2021
トップページに戻る

Logged in as: unknown user (not login)

ログイン: