#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=9;
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 time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |