제출 #1137333

#제출 시각아이디문제언어결과실행 시간메모리
1137333huutuanBroken Device 2 (JOI22_device2)C++20
0 / 100
337 ms17128 KiB
#include "Anna.h" #include <utility> #include <vector> #include <bits/stdc++.h> using namespace std; namespace Anna_solver{ const int M=2000; int Declare(){ return M; } pair<vector<int>, vector<int>> Anna(unsigned long long A){ mt19937 rng(69420); int cnt=(M-1)/128; vector<int> v; v.push_back(1); for (int i=0; i<cnt; ++i){ vector<int> ord(64); iota(ord.begin(), ord.end(), 0); // shuffle(ord.begin(), ord.end(), rng); for (int j:ord){ if (A>>j&1) v.push_back(0); v.push_back(1); } } return {vector<int>(v.size(), 0), v}; } } int Declare() { return Anna_solver::Declare(); } std::pair<std::vector<int>, std::vector<int> > Anna(long long A) { return Anna_solver::Anna(A); }
#include "Bruno.h" #include <utility> #include <vector> #include <bits/stdc++.h> using namespace std; namespace Bruno_solver{ const int M=2000; long long Bruno(vector<int> v){ mt19937 rng(69420); unsigned long long ans=ULONG_MAX; int cnt=(M-1)/128; vector<int> id, d; for (int i=0; i<(int)v.size(); ++i){ if (v[i]==1) id.push_back(i); } for (int i=0; i<(int)id.size()-1; ++i){ d.push_back(id[i+1]-id[i]-1); } for (int i=0; i<cnt; ++i){ vector<int> ord(64); iota(ord.begin(), ord.end(), 0); // shuffle(ord.begin(), ord.end(), rng); unsigned long long a=0; for (int j=i*64; j<(i+1)*64; ++j){ if (d[j]) a|=1ull<<ord[j%64]; } ans&=a; } return ans; } } long long Bruno(std::vector<int> u) { return Bruno_solver::Bruno(u); }
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...