Submission #944364

#TimeUsernameProblemLanguageResultExecution timeMemory
944364Darren0724Stray Cat (JOI20_stray)C++17
0 / 100
43 ms16244 KiB
#include "Anthony.h" #include <bits/stdc++.h> using namespace std; string str="001011"; const int N=20005; vector<int> v,adj[N+1],deg(N),e(N); const int INF=1e9; void dfs(int k,int pa,int dis,int up){ for(int i:adj[k]){ int j=e[i]^k; if(j==pa)continue; if(deg[k]<=2){ v[i]=str[dis%6]-'0'; } else{ v[i]=up^1; } dfs(j,k,dis+1,v[i]); } } vector<int> Mark(int N, int M, int A, int B,vector<int> U, vector<int> V) { v.resize(M,-1); queue<int> q; vector<int> dis(N+1,INF); for(int i=0;i<M;i++){ adj[U[i]].push_back(i); adj[V[i]].push_back(i); deg[U[i]]++; deg[V[i]]++; e[i]=U[i]^V[i]; } dfs(0,0,0,0); return v; }
#include "Catherine.h" #include <bits/stdc++.h> using namespace std; int last=-1,sure=0; vector<int> tmp={0,0,1,0,1,1}; vector<int> rec; void Init(int A, int B) { } int Move(vector<int> y) { if(sure){ int tot=y[0]+y[1]; if(tot==1){ return last=(y[0]?0:1); } else{ return last=last^1; } } if(last==-1){ int tot=y[0]+y[1]; if(tot==1){ sure=1; last=(y[0]?0:1); return last; } else if(tot==2){ if(y[0]&&y[1]){ rec.push_back(0); rec.push_back(1); return last=1; } else if(y[0]==2){ rec.push_back(0); rec.push_back(0); return last=0; } else{ rec.push_back(1); rec.push_back(1); return last=1; } } else{ sure=1; last=(y[0]>y[1]?1:0); return last; } } else{ int tot=y[0]+y[1]; if(tot==0){ sure=1; return -1; } else if(tot==1){ rec.push_back((y[0]?0:1)); if(rec.size()==5){ int flag=0; for(int i=0;i<6;i++){ vector<int> a(tmp.begin(),tmp.begin()+5); if(a==rec){ flag=1; break; } rotate(tmp.begin(),tmp.begin()+1,tmp.end()); } if(flag){ sure=1; return last=(y[0]?0:1); } else{ sure=1; return -1; } } else{ last=(y[0]?0:1); return last; } } else{ y[last]++; if(y[0]==1){ last=0; sure=1; return (last==0?-1:0); } else{ last=1; sure=1; return (last==1?-1:1);; } } } assert(false); }
#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...