제출 #1286358

#제출 시각아이디문제언어결과실행 시간메모리
1286358juan_alejandroSnake Escaping (JOI18_snake_escaping)C++20
0 / 100
1 ms332 KiB
#include <bits/stdc++.h> #define endl '\n' #define int long long #pragma GCC optimize("O2") using namespace std; map<string,int> dp; void backtracking(int num,int i,string &s,string &x,int &res) { if(i==s.size()) { res+=x[num]-'0'; return; } if(s[i]!='?') { num|=((int)(s[i]=='1')<<i); backtracking(num,i+1,s,x,res); }else { backtracking(num,i+1,s,x,res); num|=(1LL<<i); backtracking(num,i+1,s,x,res); } } int32_t main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); cout.precision(0); cout<<fixed; int k,q; cin>>k>>q; string x; cin>>x; int n=(1LL<<k)-1; while(q--) { string s; cin>>s; if(dp[s]!=0){ cout<<dp[s]<<endl; continue; } reverse(s.begin(),s.end()); int num=0,res=0; backtracking(num,0,s,x,res); cout<<res<<endl; dp[s]=res; } return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...