QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#407372 | #4513. Slide Parade | Jryno1 | 0 | 1735ms | 349276kb | C++14 | 1.8kb | 2024-05-08 16:52:15 | 2024-05-08 16:52:15 |
Judging History
answer
#include<bits/stdc++.h>
using namespace std;
const int maxn=5e5+10;
vector<int>G[maxn],ed[maxn];
int p[maxn],vis[maxn],n,m,U[maxn],V[maxn];
bool hun(int x){
for(auto v:ed[x]){
if(!vis[v]){
vis[v]=1;
if(!p[v]||hun(p[v])){
p[v]=x;
return true;
}
}
}
return false;
}
int S;
bool adj(int x){
vis[x]=1;
if(p[x]==S)return true;
for(auto v:ed[p[x]]){
if(vis[v]||!adj(v))continue;
p[v]=p[x],p[x]=S;
return true;
}
return false;
}
vector<int>ans;
void dfs(int x){
while(G[x].size()){
int v=G[x].back();
G[x].pop_back(),dfs(v);
ans.push_back(x);
}
}
void sol(){
cin>>n>>m;
for(int i=1;i<=n;i++)ed[i].clear(),G[i].clear(),p[i]=0;
for(int i=1;i<=m;i++){
cin>>U[i]>>V[i];
ed[U[i]].push_back(V[i]);
}
int cnt=0;
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++)vis[j]=0;
if(hun(i))cnt++;
}
if(cnt<n){
cout<<"IMPOSSIBLE"<<"\n";
return;
}
for(int i=1;i<=m;i++){
for(int j=1;j<=n;j++)vis[j]=0;
S=U[i];
if(!adj(V[i])){
cout<<"IMPOSSIBLE"<<"\n";
return;
}
for(int j=1;j<=n;j++)G[p[j]].push_back(j);
}
ans.push_back(1),dfs(1),reverse(ans.begin(),ans.end());
if(ans.size()!=n*m+1){
cout<<"IMPOSSIBLE"<<"\n";
return;
}
cout<<ans.size()<<"\n";
for(auto v:ans)cout<<v<<" ";
cout<<"\n";
}
int main(){
cin.tie(0),cout.tie(0),ios::sync_with_stdio(false);
int tc;
cin>>tc;
for(int i=1;i<=tc;i++){
cout<<"Case #"<<i<<": ";
sol();
}
return 0;
}
詳細信息
Test #1:
score: 0
Wrong Answer
time: 4ms
memory: 34424kb
input:
100 5 8 1 2 1 3 1 4 1 5 2 1 3 1 4 1 5 1 5 10 1 3 1 4 2 3 2 5 3 1 3 4 3 5 4 2 5 1 5 3 5 10 1 4 2 3 2 5 3 1 3 5 4 2 4 3 4 5 5 1 5 2 3 6 1 2 1 3 2 1 2 3 3 1 3 2 5 10 1 2 1 5 2 3 2 4 3 1 4 3 4 5 5 2 5 3 5 4 4 10 1 2 1 3 1 4 2 1 2 3 2 4 3 1 3 4 4 2 4 3 5 10 1 2 1 3 2 1 2 4 3 1 3 5 4 2 4 5 5 3 5 4 5 10 1 ...
output:
Case #1: IMPOSSIBLE Case #2: 51 1 4 2 5 3 1 4 2 3 5 1 4 2 3 5 1 4 2 3 5 1 3 4 2 5 1 4 2 5 3 1 4 2 5 3 1 4 2 3 5 1 4 2 5 3 1 3 4 2 5 1 Case #3: IMPOSSIBLE Case #4: IMPOSSIBLE Case #5: IMPOSSIBLE Case #6: IMPOSSIBLE Case #7: IMPOSSIBLE Case #8: IMPOSSIBLE Case #9: IMPOSSIBLE Case #10: IMPOSSIBLE Case...
result:
wrong answer you didn't find a solution but jury did (test case 3)
Test #2:
score: 0
Wrong Answer
time: 1735ms
memory: 349276kb
input:
100 199 4980 1 95 1 96 1 105 1 124 1 130 1 131 1 135 1 137 1 139 1 140 1 141 1 147 1 155 1 172 1 174 1 179 1 183 1 188 1 193 1 196 1 197 2 3 2 5 2 13 2 14 2 17 2 20 2 24 2 26 2 30 2 41 2 44 2 45 2 52 2 56 2 67 2 70 2 71 2 74 2 78 2 84 2 85 2 90 2 92 2 93 2 97 2 107 2 111 2 113 2 122 2 124 2 128 2 13...
output:
Case #1: IMPOSSIBLE Case #2: IMPOSSIBLE Case #3: 1000001 1 67 142 75 191 179 161 23 100 22 40 99 82 68 129 90 113 27 160 88 172 52 57 110 86 194 62 49 143 192 181 156 174 35 123 58 152 133 137 108 6 186 105 36 157 38 8 2 148 4 39 43 195 29 154 73 41 115 72 176 190 30 45 101 171 112 121 117 141 187 8...
result:
wrong answer you didn't find a solution but jury did (test case 5)