AtCoder Beginner Contest #129 F問題 - Takahashi's Basics in Education and Learning

Source

AtCoder Beginner Contest #129
問題文

問題概要

省略

解法

省略

cLayversion 20190706-1)のコード

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

ll L, A, B;
int M;
{
  ll i, j, k;
  ll p;
  modint res;
  Matrix<modint> mt, vc;
  
  rd(L,A,B,M);
  res.setmod(M);

  mt.changeSize(3,3);
  vc.changeSize(3,1);
  vc[0][0] = 0;
  vc[1][0] = A;
  vc[2][0] = B;

  p = 1;
  while(L){
    p *= 10;
    if(A >= p) continue;
    k = min(L, (p-1-A)/B+1);
    L -= k;
    A += k*B;
    
    mt = 0;
    mt[0][0] = p;
    mt[0][1] = mt[1][1] = mt[1][2] = mt[2][2] = 1;

    vc = (mt ** k) * vc;
  }

  res = vc[0][0];
  wt(res);
}

Current time: 2021年09月19日21時08分23秒
Last modified: 2019年07月07日16時10分16秒 (by laycrs)
Tags: Competitive_Programming_Incomplete AtCoder AtCoder_Beginner_Contest ABC129 ABC_F
トップページに戻る

Logged in as: unknown user (not login)

ログイン: