이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include "vision.h"
#include <bits/stdc++.h>
using namespace std;
#define pii pair<int,int>
#define fs first
#define sc second
const int mxn = 404;
const int sh = mxn>>1;
int H,W,K;
int encode(int r,int c){
return r*W+c;
}
pii decode(int k){
return pii(k/W,k%W);
}
vector<int> v[mxn],vv[mxn];
int arr[mxn],brr[mxn];
void construct_network(int HH, int WW, int KK) {
H = HH,W = WW,K = KK;
int zero = add_xor({0,0});
int one = add_not(zero);
int ans = zero;
int t1 = zero;
{
for(int i = 0;i<H;i++){
for(int j = 0;j<W;j++){
v[i+j].push_back(encode(i,j));
}
}
for(int i = 0;i<mxn;i++){
if(!v[i].empty()){
arr[i] = add_or(v[i]);
}
}
for(int i = 0;i<H+W;i++){
if(i+K>=mxn||v[i+K].empty()||v[i].empty())continue;
t1 = add_or({t1,add_and({arr[i],arr[i+K]})});
}
}
int t2 = zero;
{
for(int i = 0;i<H;i++){
for(int j = 0;j<W;j++){
vv[sh+i-j].push_back(encode(i,j));
}
}
for(int i = 0;i<mxn;i++){
if(!vv[i].empty())brr[i] = add_or(vv[i]);
}
for(int i = 0;i<mxn;i++){
if(vv[i].empty()||i+K>=mxn||vv[i+K].empty())continue;
t2 = add_or({t2,add_and({brr[i],brr[i+K]})});
}
}
int t3 = one;
{
for(int i = 0;i<mxn;i++){
if(vv[i].empty())continue;
int tmp = one;
vector<int> ban;
for(int j = 0;j<mxn;j++){
if(vv[j].empty()||abs(i-j)<=K)continue;
ban.push_back(brr[j]);
}
if(ban.empty())continue;
tmp = add_or(ban);
tmp = add_and({brr[i],tmp});
tmp = add_not(tmp);
t3 = add_and({t3,tmp});
}
}
int t4 = one;
{
for(int i = 0;i<mxn;i++){
vector<int> ban;
if(v[i].empty())continue;
int tmp = one;
for(int j = 0;j<mxn;j++){
if(v[j].empty()||abs(i-j)<=K)continue;
ban.push_back(arr[j]);
}
if(ban.empty())continue;
tmp = add_or(ban);
tmp = add_and({arr[i],tmp});
tmp = add_not(tmp);
t4 = add_and({t4,tmp});
}
}
ans = add_or({ans,add_and({t1,t3})});
ans = add_or({ans,add_and({t2,t4})});
return;
}
# | 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... |