Codeforces Round #597 DIV2 F問題 (2500pt)
Problem description
省略
省略
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)