XXII Open Cup named after E.V. Pankratiev, Stage 2: Grand Prix of IMO H問題 - Hamiltonian

Source

XXI Open Cup named after E.V. Pankratiev, Stage 2: Grand Prix of IMO
問題文
情報 (Codeforces blog)

問題概要

省略

解法

省略

cLay(version 20210917-1)のコード

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

int @K;
int N, mat[20][20] = {}, x, y, nx;
int M, A[400], B[400];

if(K==1) wt("2 1\n1 2"), return 0;
if(K==2) wt("4 4\n1 2\n1 3\n2 3\n3 4"), return 0;
if(K <= 20){
  wt(K, K);
  rep(i,K) wt(i+1, (i+1)%K+1);
  return 0;
}

rep(x,20) if((x*x + x - 2)/2 + x - 1 > K) break;
x--;
y = K - ((x*x + x - 2)/2 + x - 1) + 2;

rep(i,x) rep(j,i+1,x) if(i!=j) mat[i][j] = 1;
mat[x-2][x-1] = 0;
mat[x-1][x] = 1;
rep(i,y){
  nx = x + i + 1;
  if(i == y - 1) nx = x-2;
  mat[x+i][nx] = mat[nx][x+i] = 1;
}

(N, M) = (x + y, 0);
rep(i,N) rep(j,i+1,N) if(mat[i][j]) arrInsert(M,M,A,i,B,j);
wt(N,M);
rep(i,M) wt(A[i]+1,B[i]+1);

Current time: 2024年04月20日08時00分56秒
Last modified: 2021年09月26日10時13分48秒 (by laycrs)
Tags: Competitive_Programming_Incomplete opencup
トップページに戻る

Logged in as: unknown user (not login)

ログイン: