# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
673375 | 2022-12-20T12:21:04 Z | stevancv | Snake Escaping (JOI18_snake_escaping) | C++14 | 0 ms | 0 KB |
#include <bits/stdc++.h> #define ll long long #define ld long double #define sp ' ' #define en '\n' #define smin(a, b) a = min(a, b) #define smax(a, b) a = max(a, b) using namespace std; const int N = 1e6 + 2; const int mod = 1e9 + 7; int main() { ios::sync_with_stdio(false); cin.tie(0); cout.tie(0); int n, q; cin >> n >> q; int m = 1 << n; string s; cin >> s; vector<int> sum(m); for (int i = 0; i < m; i++) sum[i] = s[i] - '0'; for (int i = 0; i < m; i++) { for (int j = 0; j < n; j++) { if ((1 << j) & i) sum[i] += sum[i ^ (1 << j)]; } } while (q--) { string t; cin >> t; reverse(t.begin(), t.end()); int x = 0, y = 0; for (int i = 0; i < n; i++) { if (s[i] == '0') x += 1 << i; if (s[i] == '1') y += 1 << i; if (s[i] == '?') z += 1 << i; } if (__builtin_popcount(x) <= 6) { int ans = 0; for (int smask = x; ; smask = (smask - 1) & mask) { } } } return 0; }