Submission #417320

#TimeUsernameProblemLanguageResultExecution timeMemory
417320lycAncient Machine (JOI21_ancient_machine)C++17
5 / 100
58 ms2980 KiB
#include "Anna.h" #include <vector> #include <bits/stdc++.h> using namespace std; #define TRACE(x) cerr << #x << " :: " << x << endl #define _ << " " << #define SZ(x) ((int)(x).size()) #define ALL(x) (x).begin(), (x).end() #define FOR(i,a,b) for(int i=(a);i<=(b);++i) #define RFOR(i,a,b) for(int i=(a);i>=(b);--i) typedef long long ll; typedef pair<int,int> ii; namespace { int N, res[1<<18], pa[1<<18]; vector<char> S; int dp(int x) { if (x == 0) return 0; if (~res[x]) return res[x]; res[x] = -1; for (int y = x; y;) { int b = y&-y, j = __builtin_ctz(b); int add = 0; if (S[j] == 'Y') { int p = x & ((1<<j)-1), q = x ^ p ^ b; if (p != 0 && q != 0) { int r = 31-__builtin_clz(p), s = __builtin_ctz(q); if (S[r] == 'X' && S[s] == 'Z') ++add; } } int cur = dp(x ^ b) + add; if (cur > res[x]) { pa[x] = j; res[x] = cur; } y ^= b; } return res[x]; } } void Anna(int _N, std::vector<char> _S) { N = _N; S = _S; memset(res,-1,sizeof res); memset(pa,-1,sizeof pa); dp((1<<N)-1); vector<int> seq; int u = (1<<N)-1; while (pa[u] != -1) { seq.push_back(pa[u]); u = u ^ (1<<pa[u]); } //cout << "SEQ "; for (int& x : seq) { //cout << x << '\n'; RFOR(i,4,0){ Send((x&(1<<i)) > 0); } } }
#include "Bruno.h" #include <vector> #include <bits/stdc++.h> using namespace std; #define TRACE(x) cerr << #x << " :: " << x << endl #define _ << " " << #define SZ(x) ((int)(x).size()) #define ALL(x) (x).begin(), (x).end() #define FOR(i,a,b) for(int i=(a);i<=(b);++i) #define RFOR(i,a,b) for(int i=(a);i>=(b);--i) typedef long long ll; typedef pair<int,int> ii; namespace { } // namespace void Bruno(int N, int L, std::vector<int> A) { int p = 0; FOR(i,0,N-1){ int x = 0; FOR(j,0,4){ x *= 2; x += A[p++]; } Remove(x); } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...