yukicoder No.916 - Encounter On A Tree

Source

ニコニコミュニティ
問題文

問題概要

省略

解法

省略

cLayversion 20191102-1)のコード

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

int D, L, R, K;

int getdepth(int n){
  int res = 0;
  while(n >= (1<<res)){
    n -= (1<<res);
    res++;
  }
  return res;
}

{
  Modint res;
  rd(D,L--,R--,K);
  L = getdepth(L);
  R = getdepth(R);
  sortE(L,R);
  res = Modint(2) ** (R-L);
  K -= R - L;
  if(K < 0 || K % 2) wt(0), return 0;
  K /= 2;
  if(L < K) wt(0), return 0;
  res *= Modint(2) ** (L - K);
  res *= Modint(4) ** (K);
  if(K) res /= 2;
  rep(i,D){
    int k = (1<<i);
    if(L==i) k--;
    if(R==i) k--;
    rep(j,k) res *= j+1;
  }
  wt(res);
}

Current time: 2024年04月27日03時16分36秒
Last modified: 2019年11月02日11時41分23秒 (by laycrs)
Tags: Competitive_Programming_Incomplete yukicoder
トップページに戻る

Logged in as: unknown user (not login)

ログイン: