Submission #620225

#TimeUsernameProblemLanguageResultExecution timeMemory
620225czhang2718Super Dango Maker (JOI22_dango3)C++17
100 / 100
4177 ms736 KiB
#include "dango3.h" #include <bits/stdc++.h> using namespace std; int n,m; int Query2(vector<int> v){ vector<int> u; vector<bool> have(n*m+1); for(int x:v) have[x]=1; for(int i=1; i<=n*m; i++){ if(!have[i]) u.push_back(i); } return m-Query(u); } void Solve(int N, int M) { n=N, m=M; vector<vector<int>> dango(M); for(int i=1; i<=N*M; i++){ auto check=[&](int k)->bool{ dango[k-1].push_back(i); int r=Query2(dango[k-1]); dango[k-1].pop_back(); return r==2; }; int j=0; for(int k=31-__builtin_clz(M); k>=0; k--){ if(j+(1<<k)<M && check(j+(1<<k))) j+=(1<<k); } dango[j].push_back(i); } for(int i=0; i<M; i++) Answer(dango[i]); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...