Submission #1138078

#TimeUsernameProblemLanguageResultExecution timeMemory
1138078huutuanBroken Device 2 (JOI22_device2)C++20
0 / 100
392 ms493768 KiB
#include "Anna.h" #include <utility> #include <vector> #include <bits/stdc++.h> using namespace std; namespace Anna_solver{ const int M=200; int Declare(){ return M; } mt19937 rng(69420); pair<vector<int>, vector<int>> Anna(long long A){ long long val=uniform_int_distribution<long long>(0, (1ll<<60)-1)(rng); // long long val=0; A^=val; vector<int> v; for (int i=0; i<60; ++i){ v.push_back(i&1); v.push_back(i&1); if (A>>i&1){ v.push_back(i&1); v.push_back(i&1); } } vector<int> vv; for (int i=0; i<(int)v.size(); ++i) vv.push_back(i&1); return {v, vv}; } } 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=200; mt19937 rng(69420); long long f[M*2+10][61][M+10][2][6]; int n; void transition(long long &x, long long y){ // assert(x==-1 || x==y); x=y; } long long Bruno(vector<int> v){ n=v.size(); long long val=uniform_int_distribution<long long>(0, (1ll<<60)-1)(rng); // long long val=0; long long ans=0; memset(f, -1, sizeof f); f[0][0][0][0][0]=0; for (int i=0; i<n; ++i){ for (int b=0; b<=60; ++b){ for (int c=0; c<=n/2; ++c){ for (int k=0; k<2; ++k) for (int l=0; l<6; ++l) if (f[i][b][c][k][l]!=-1){ if (c<n/2 && v[i]==(c&1)){ transition(f[i+1][b][c+1][k][l], f[i][b][c][k][l]); } if (v[i]==k && l<5){ transition(f[i+1][b][c][k][l+1], f[i][b][c][k][l]); if (l&1 && b<60){ transition(f[i+1][b+1][c][k^1][0], f[i][b][c][k][l]|(l==3?1ll<<b:0ll)); } } } } } } ans=f[n][60][n/2][0][0]; assert(ans!=-1); return ans^val; } } 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...