Submission #56414
ソースコード
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 | #include <bits/stdc++.h> using namespace std; #define int long long #define MOD 1000000007 string s; int memo[300][300][2]; void dp( int l, int r){ if (l == r){ if (s[l] == '0' ){ memo[l][l][0] = 1; memo[l][l][1] = 0; } else { memo[l][l][0] = 0; memo[l][l][1] = 1; } return ; } if (memo[l][r][0] != -1) return ; int ans0 = 0; int ans1 = 0; for ( int i = l;i <= r;i++){ if (!(s[i] == '0' || s[i] == '1' )){ dp(l, i-1); dp(i+1, r); if (s[i] == '|' ){ ans0 += memo[l][i-1][0] * memo[i+1][r][0] % MOD; ans0 %= MOD; ans1 += memo[l][i-1][0] * memo[i+1][r][1] % MOD; ans1 %= MOD; ans1 += memo[l][i-1][1] * memo[i+1][r][0] % MOD; ans1 %= MOD; ans1 += memo[l][i-1][1] * memo[i+1][r][1] % MOD; ans1 %= MOD; } else if (s[i] == '&' ){ ans0 += memo[l][i-1][0] * memo[i+1][r][0] % MOD; ans0 %= MOD; ans0 += memo[l][i-1][0] * memo[i+1][r][1] % MOD; ans0 %= MOD; ans0 += memo[l][i-1][1] * memo[i+1][r][0] % MOD; ans0 %= MOD; ans1 += memo[l][i-1][1] * memo[i+1][r][1] % MOD; ans1 %= MOD; } else { ans0 += memo[l][i-1][0] * memo[i+1][r][0] % MOD; ans0 %= MOD; ans1 += memo[l][i-1][0] * memo[i+1][r][1] % MOD; ans1 %= MOD; ans1 += memo[l][i-1][1] * memo[i+1][r][0] % MOD; ans1 %= MOD; ans0 += memo[l][i-1][1] * memo[i+1][r][1] % MOD; ans0 %= MOD; } } } memo[l][r][0] = ans0; memo[l][r][1] = ans1; return ; } signed main(){ cin >> s; memset (memo, -1, sizeof (memo)); dp(0, s.size()-1); cout << memo[0][s.size()-1][1] << endl; return 0; } |
ステータス
項目 | データ |
---|---|
問題 | 0570 - 1 |
ユーザー名 | ei1719 |
投稿日時 | 2019-11-13 18:45:48 |
言語 | C++14 |
状態 | Accepted |
得点 | 1 |
ソースコード長 | 2091 Byte |
最大実行時間 | 50 ms |
最大メモリ使用量 | 1880 KB |
セット
セット | 得点 | Cases | |
---|---|---|---|
1 | ALL | 1 / 1 | * |
テストケース
ファイル名 | 状態 | 実行時間 | メモリ使用量 | # |
---|---|---|---|---|
00.in | AC | 50 ms | 1880 KB |
1
|
01.in | AC | 31 ms | 1856 KB |
1
|
02.in | AC | 25 ms | 1832 KB |
1
|
03.in | AC | 24 ms | 1808 KB |
1
|
04.in | AC | 26 ms | 1776 KB |
1
|