제출 #1291206

#제출 시각아이디문제언어결과실행 시간메모리
1291206LudisseyVision Program (IOI19_vision)C++20
59 / 100
5 ms1960 KiB
#include "vision.h" #include <bits/stdc++.h> #define sz(a) (int)a.size() #define all(a) a.begin(), a.end() #define rall(a) a.rbegin(), a.rend() int h,w; using namespace std; const int LOG=24; int conv(int i, int j){ return (j+i*w); } void construct_network(int H, int W, int K) { h=H; w=W; vector<int> row; vector<int> col; for (int i = 0; i < H; i++) { vector<int> add; for (int j = 0; j < W; j++) add.push_back(conv(i,j)); row.push_back(add_xor(add)); } for (int j = 0; j < W; j++) { vector<int> add; for (int i = 0; i < H; i++) add.push_back(conv(i,j)); col.push_back(add_xor(add)); } int lst=-1; vector<int> distLOG(LOG,-1); for (int i = 0; i < H; i++) { int ex=0; if(lst==-1) lst=row[i]; else lst=add_xor({lst,row[i]}); ex=lst; for (int j = 0; j < LOG; j++) { int nex=-1; if(ex==-1) continue; if(distLOG[j]==-1) distLOG[j]=ex; else { nex=add_and({distLOG[j],ex}); distLOG[j]=add_xor({ex,distLOG[j]}); } ex=nex; } } lst=-1; for (int i = 0; i < W; i++) { int ex=0; if(lst==-1) lst=col[i]; else lst=add_xor({lst,col[i]}); ex=lst; for (int j = 0; j < LOG; j++) { int nex=-1; if(ex==-1) continue; if(distLOG[j]==-1) distLOG[j]=ex; else { nex=add_and({distLOG[j],ex}); distLOG[j]=add_xor({ex,distLOG[j]}); } ex=nex; } } vector<int> mst; vector<int> nt; for (int j = 0; j < LOG; j++) { if(K&(1<<j)) { if(distLOG[j]==-1) { add_and({0,add_not(0)}); return; } mst.push_back(distLOG[j]); }else{ if(distLOG[j]==-1) continue; nt.push_back(distLOG[j]); } } add_and({add_and(mst), add_not({add_or(nt)})}); }
#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...