QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#357640 | #403. Memory2 | new_acc2 | 100 ✓ | 8ms | 4024kb | C++14 | 3.0kb | 2024-03-19 04:29:14 | 2024-03-19 04:29:15 |
Judging History
answer
#include "Memory2_lib.h"
#include<bits/stdc++.h>
#define fi first
#define se second
using namespace std;
typedef vector<int> vi;
map<pair<int,int>,int> m;
int li;
void upd(vi curr){
vi v;
for(int i=0;i<curr.size();i++){
int n1=curr[(i+1)%curr.size()],akt=curr[i];
if(!(m.count(make_pair(akt,n1)))){
m[make_pair(akt,n1)]=Flip(akt,n1);
m[make_pair(n1,akt)]=m[make_pair(akt,n1)];
//li++;
}
}
}
void Solve(int T, int n){
m.clear();
vi curr;
for(int i=0;i<n*2;i++) curr.push_back(i);
for(int i=0;i<n-1;i++){
//cout<<i<<"\n";
upd(curr);
bool zn=0;
vi curr2;
for(int i2=0;i2<curr.size();i2++){
for(int i3=i2+1;i3<curr.size();i3++){
if(zn) continue;
int xd=-1;
//if(curr.size()<8) xd=Flip(curr[i2],curr[i3]);
bool ok=1;
for(int i4=-1;i4<=1;i4++){
if(i4==0) continue;
int prv=curr[(i2+i4+curr.size())%curr.size()];
if(xd==-1) xd=m[make_pair(prv,curr[i2])];
if(xd!=m[make_pair(prv,curr[i2])]) ok=0;
}
for(int i4=-1;i4<=1;i4++){
if(i4==0) continue;
int prv=curr[(i3+i4+curr.size())%curr.size()];
if(xd!=m[make_pair(prv,curr[i3])]) ok=0;
}
if(!ok) continue;
pair<int,int> r={i2,i3};
if(i2==i3-1){
if(Flip(curr[i2],curr[(i3+1)%curr.size()])!=xd){
r.fi--;
}
if(Flip(curr[i3],curr[(i2-1+curr.size())%curr.size()])!=xd){
r.se++;
}
}else{
if(i2==0 and i3==curr.size()-1){
if(Flip(curr[i2],curr[(i3-1+curr.size())%curr.size()])!=xd){
r.fi++;
}
if(Flip(curr[i3],curr[(i2+1+curr.size())%curr.size()])!=xd){
r.se--;
}
}else{
if(Flip(curr[i2],curr[(i3-1+curr.size())%curr.size()])!=xd){
r.fi--;
}
if(Flip(curr[i3],curr[(i2+1+curr.size())%curr.size()])!=xd){
r.se++;
}
}
}
r.fi+=curr.size(),r.se+=curr.size();
r.fi%=curr.size(),r.se%=curr.size();
Answer(curr[r.fi],curr[r.se],xd);
for(int i4=0;i4<curr.size();i4++){
if(i4!=r.fi and i4!=r.se) curr2.push_back(curr[i4]);
}
zn=1;
}
}
curr=curr2;
}
Answer(curr[0],curr[1],Flip(curr[0],curr[1]));
}
详细
Subtask #1:
score: 10
Accepted
Test #1:
score: 10
Accepted
time: 1ms
memory: 4012kb
Test #2:
score: 0
Accepted
time: 3ms
memory: 3780kb
Test #3:
score: 0
Accepted
time: 5ms
memory: 3732kb
Test #4:
score: 0
Accepted
time: 4ms
memory: 3728kb
Test #5:
score: 0
Accepted
time: 3ms
memory: 3748kb
Test #6:
score: 0
Accepted
time: 5ms
memory: 3764kb
Test #7:
score: 0
Accepted
time: 0ms
memory: 3748kb
Test #8:
score: 0
Accepted
time: 5ms
memory: 3788kb
Subtask #2:
score: 50
Accepted
Test #9:
score: 50
Accepted
time: 3ms
memory: 3740kb
Test #10:
score: 0
Accepted
time: 4ms
memory: 3832kb
Test #11:
score: 0
Accepted
time: 4ms
memory: 3764kb
Test #12:
score: 0
Accepted
time: 2ms
memory: 3780kb
Test #13:
score: 0
Accepted
time: 4ms
memory: 3688kb
Test #14:
score: 0
Accepted
time: 4ms
memory: 3764kb
Test #15:
score: 0
Accepted
time: 4ms
memory: 3760kb
Test #16:
score: 0
Accepted
time: 6ms
memory: 4024kb
Test #17:
score: 0
Accepted
time: 7ms
memory: 3732kb
Test #18:
score: 0
Accepted
time: 8ms
memory: 3988kb
Subtask #3:
score: 40
Accepted
Test #19:
score: 40
Accepted
time: 4ms
memory: 3740kb
Test #20:
score: 0
Accepted
time: 4ms
memory: 4016kb
Test #21:
score: 0
Accepted
time: 0ms
memory: 3688kb
Test #22:
score: 0
Accepted
time: 4ms
memory: 3828kb
Test #23:
score: 0
Accepted
time: 4ms
memory: 4024kb
Test #24:
score: 0
Accepted
time: 4ms
memory: 3692kb
Test #25:
score: 0
Accepted
time: 4ms
memory: 3780kb
Test #26:
score: 0
Accepted
time: 6ms
memory: 3828kb
Test #27:
score: 0
Accepted
time: 0ms
memory: 3688kb
Test #28:
score: 0
Accepted
time: 8ms
memory: 3776kb
Extra Test:
score: 0
Extra Test Passed