제출 #1207464

#제출 시각아이디문제언어결과실행 시간메모리
1207464AvianshVision Program (IOI19_vision)C++20
8 / 100
1 ms328 KiB
#include "vision.h" #include <bits/stdc++.h> using namespace std; void construct_network(int h, int w, int k) { //std::vector<int> Ns; //Ns = {0, 1}; //int a = add_and(Ns); //Ns = {0, a}; //int b = add_or(Ns); //Ns = {0, 1, b}; //int c = add_xor(Ns); //add_not(c); auto conv = [&] (int i, int j){ return i*w+j; }; int cn = 0; set<array<int,2>>s; vector<array<int,2>>doen; for(int i = 0;i<1;i++){ for(int j = 0;j<1;j++){ vector<int>quer; for(int ai = 0;ai<=k;ai++){ int ci = i+ai; int ji = j+(k-ai); if(ci>=h||ji>=w||ci<0||ji<0){ continue; } int initi = conv(i,j); int fini = conv(ci,ji); if(s.find({initi,fini})!=s.end()||s.find({fini,initi})!=s.end()) continue; quer.push_back(fini); s.insert({initi,fini}); } for(int ai = 0;ai<=k;ai++){ int ci = i-ai; int ji = j+(k-ai); if(ci>=h||ji>=w||ci<0||ji<0){ continue; } int initi = conv(i,j); int fini = conv(ci,ji); if(s.find({initi,fini})!=s.end()||s.find({fini,initi})!=s.end()) continue; quer.push_back(fini); s.insert({initi,fini}); } if(quer.size()==0) continue; add_or(quer); doen.push_back({i,j}); } } int indi = h*w; for(array<int,2>a:doen){ int i = a[0]; int j = a[1]; add_and({indi,conv(i,j)}); indi++; } vector<int>quer; for(int i = 0;i<doen.size();i++) quer.push_back(i+indi); add_or(quer); }
#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...