Codeforces Round #597 DIV2 F問題 - Daniel and Spring Cleaning

Source

Codeforces Round #597 DIV2 F問題 (2500pt)
Problem description

問題概要

省略

解法

省略

cLayversion 20191027-1)のコード

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

//no-unlocked
int L[32], R[32];
ll dp[2][2][2][32];

ll solve(int x, int a, int b, int d){
  if(d < 0) return 1 + x;

  ll &res = dp[x][a][b][d];
  if(res >= 0) return res;
  res = 0;

  if(a==1 || L[d]==0){
    res += solve(x, a, if[R[d]==1,1,b], d-1);
  }
  if( (a==1 || L[d]==0) && (b==1 || R[d]==1) ){
    res += solve(1, a, b, d-1);
  }
  if(x==1){
    res += solve(1, if[L[d]==0,1,a], if[R[d]==1,1,b], d-1);
  }

  return res;
}

{
  int i, j;
  REP(rd_int()){
    rd(i,j);
    rep(k,32) L[k] = i%2, i/=2;
    rep(k,32) R[k] = j%2, j/=2;
    rep(i,2) rep(j,2) rep(k,2) rep(m,32) dp[i][j][k][m] = -1;
    wt(solve(0,0,0,31));
  }
}

Current time: 2024年05月02日07時03分05秒
Last modified: 2019年11月02日02時57分28秒 (by laycrs)
Tags: Competitive_Programming_Incomplete Codeforces CF597 CF_Div2_F
トップページに戻る

Logged in as: unknown user (not login)

ログイン: