KickStart Round H 2020 2問目 - Boring Numbers

Source

KickStart Round H 2020
問題文

問題概要

省略

解法

省略

cLayversion 20201115-2)のコード

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

int TEST;

int sz, d[20];
ll dp[2], nx[2];

ll solve(ll x){
  ll res = 0;
  if(x==0) return res;

  sz = 0;
  while(x) d[sz++] = x%10, x/=10;
  reverse(d, d+sz);

  rep(i,1,sz) res += 5LL ** i;

  (dp[0], dp[1]) = (0, 1);
  rep(k,sz){
    (nx[0], nx[1]) = (0, 0);
    rep(i,(k+1)%2,10,2){
      nx[0] += dp[0];
      if(i < d[k]) nx[0] += dp[1];
      if(i==d[k]) nx[1] += dp[1];
    }
    (dp[0], dp[1]) = (nx[0], nx[1]);
  }

  return res + dp[0] + dp[1];
}

{
  REP(TEST,rd_int()){
    ll @L, @R;
    wtF("Case #{TEST+1}: ");
    wt(solve(R) - solve(L-1));
  }
}

Current time: 2024年04月17日01時23分13秒
Last modified: 2020年11月15日16時54分46秒 (by laycrs)
Tags: Competitive_Programming_Incomplete KickStart
トップページに戻る

Logged in as: unknown user (not login)

ログイン: