AtCoder Regular Contest 066
AtCoder Beginner Contest 050
問題文 (ARC)
問題文 (ABC)
省略
省略
C++に変換後のコードはこちら
ll N;
char in[64], vis[2][2][64];
mint dp[2][2][64];
mint solve(int p, int k, int d){
mint res = 0;
if(d==-1) return 1;
if(vis[p][k][d]) return dp[p][k][d];
vis[p][k][d] = 1;
res += solve(if[in[d], 0, p], 0, d-1);
if(k==0 && (p==0 || in[d]==1)) res += solve(p, 0, d-1);
if(d!=0 && (p==0 || in[d]==1)) res += solve(p, 1, d-1);
if(k==1 && d!=0) res += solve(if[in[d], 0, p], 1, d-1);
return dp[p][k][d] = res;
}
{
rd(N);
rep(i,64) in[i] = N % 2, N /= 2;
wt(solve(1,0,63));
}
Current time: 2024年03月29日10時40分26秒
Last modified: 2019年09月28日09時44分57秒 (by laycrs)
Tags: Competitive_Programming_Incomplete AtCoder AtCoder_Regular_Contest AtCoder_Beginner_Contest ARC066 ABC050 ARC_B ABC_D
トップページに戻る
Logged in as: unknown user (not login)