Submission #622474

#TimeUsernameProblemLanguageResultExecution timeMemory
622474TimDeeVision Program (IOI19_vision)C++17
58 / 100
10 ms2252 KiB
#include "vision.h" #include <bits/stdc++.h> using namespace std; void _p7(int h, int w) { vector<int> rows_or, cols_or; for (int i=0; i<h; ++i) { vector<int> t; for (int j=0; j<w; ++j) t.push_back(i*w+j); rows_or.push_back(add_or(t)); } for (int i=0; i<w; ++i) { vector<int> t; for (int j=0; j<h; ++j) t.push_back(j*w+i); cols_or.push_back(add_or(t)); } vector<int> colsx2, rowsx2; for (int i=0; i+1<h; ++i) { rowsx2.push_back(add_and({rows_or[i],rows_or[i+1]})); } for (int i=0; i+1<w; ++i) { colsx2.push_back(add_and({cols_or[i],cols_or[i+1]})); } vector<int> use; int rowxor=add_xor(rows_or); int colx2xor=add_xor(colsx2); int pos1=add_and({rowxor,colx2xor}); int colxor=add_xor(cols_or); int rowx2xor=add_xor(rowsx2); int pos2=add_and({colxor,rowx2xor}); use = {pos1,pos2}; add_or(use); } void _p3(int h, int w, int k) { vector<int> use; for (int i=0; i<h; ++i) { for (int j=0; j<w; ++j) { vector<int> xored; for (int x=0; x<=k; ++x) { int y=k-x; if (j+y<w && i+x<h) xored.push_back((i+x)*w+j+y); if (x && y && j-y>=0 && i+x<h) xored.push_back((i+x)*w+j-y); } if (!xored.size()) continue; int xorpos=add_xor(xored); int andpos=add_and({i*w+j,xorpos}); use.push_back(andpos); } } add_or(use); } void construct_network(int h, int w, int k) { if (max(h,w)<=100) { _p3(h,w,k); return; } if (min(h,w)==1) { vector<int> use; for (int i=0; i+k<h*w; ++i) { int pos=add_and({i,i+k}); use.push_back(pos); } add_or(use); return; } if (k==1) { _p7(h,w); return; } vector<int> use; for (int x=0; x<=k; ++x) use.push_back(x*w+k-x); add_xor(use); }
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...