AtCoder Beginner Contest #118 D問題 - Match Matching

Source

AtCoder Beginner Contest #118
問題文

問題概要

省略

解法

省略

cLayversion 20190715-1)のコード

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

int N, M, A[9];

int m[10] = {0, 2, 5, 5, 4, 5, 6, 3, 7, 6};
int dp[10001];

char res[10001]; int ress;

{
  int i, j, k;
  rd(N,M,A(M));
  
  sort(A, A+M);
  rep(i,M) m[i] = m[A[i]];

  rep(i,1,N+1) dp[i] = -int_inf;
  rep(i,M) rep(k,m[i],N+1) dp[k] >?= dp[k-m[i]] + 1;

  k = 0;
  while(N){
    for(i=M-1;i>=0;i--) if(N-m[i]>=0 && dp[N]==dp[N-m[i]]+1){
      res[ress++] = '0' + A[i];
      N -= m[i];
      break;
    }
  }

  wt(res);
}

Current time: 2021年09月19日19時21分16秒
Last modified: 2019年07月17日01時32分39秒 (by laycrs)
Tags: Competitive_Programming_Incomplete AtCoder AtCoder_Beginner_Contest ABC118 ABC_D
トップページに戻る

Logged in as: unknown user (not login)

ログイン: