QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#84625#4513. Slide Paradefansizhe0 365ms12844kbC++231.5kb2023-03-06 16:23:132023-03-06 16:23:17

Judging History

你现在查看的是最新测评结果

  • [2023-08-10 23:21:45]
  • System Update: QOJ starts to keep a history of the judgings of all the submissions.
  • [2023-03-06 16:23:17]
  • 评测
  • 测评结果:0
  • 用时:365ms
  • 内存:12844kb
  • [2023-03-06 16:23:13]
  • 提交

answer

#include<bits/stdc++.h>
using namespace std;
int n,m;
vector<int> edge[405];
int eid[205][205];
int vis[405];
int ex[5005],ey[5005];
int to[405];
int num[5005];
int mat[205][205];
int nosol;
void dfs(int x){
	vis[x]=1;
	for(int y:edge[x])if(!to[y]){to[x]=y,to[y]=x;return;}
	for(int y:edge[x])if(!vis[y]){
		int z=to[y];to[z]=0;
		vis[y]=1;
		to[x]=y,to[y]=x;
		dfs(z);
		return;
	}
	if(!to[x])nosol=1;
}
stack<int> st;
void solve(int x){
	for(int y=1;y<=n;y++)if(mat[x][y]){mat[x][y]--,solve(y);break;}
	st.push(x);
}
int main(){
	int _;scanf("%d",&_);
	for(int __=1;__<=_;__++){
		scanf("%d%d",&n,&m);
		for(int i=1;i<=2*n;i++)edge[i].clear();
		memset(num,0,sizeof(num));
		memset(to,0,sizeof(to));
		for(int i=1;i<=m;i++){
			int x,y;scanf("%d%d",&x,&y);
			edge[x].push_back(y+n);
			edge[y+n].push_back(x);
			ex[i]=x,ey[i]=y;
			eid[x][y]=i;
		}
		for(int i=1;i<=n;i++){
			memset(vis,0,sizeof(vis));
			dfs(i);
			if(nosol)break;
		}
		if(nosol){printf("Case #%d: IMPOSSIBLE\n",__);nosol=0;continue;}
		for(int i=1;i<=n;i++)num[eid[i][to[i]-n]]++;
		for(int i=1;i<=m;i++)if(!num[i]){
			memset(vis,0,sizeof(vis));
			int x=ex[i],y=ey[i]+n,tx=to[x],ty=to[y];
			to[x]=y,to[y]=x;vis[x]=vis[y]=1;
			to[ty]=to[tx]=0;dfs(tx);
			for(int j=1;j<=n;j++)num[eid[j][to[j]-n]]++;
		}
		for(int i=1;i<=m;i++)mat[ex[i]][ey[i]]=num[i];
		solve(1);
		printf("Case #%d: %d\n",__,st.size());
		while(!st.empty())printf("%d ",st.top()),st.pop();puts("");
	}
	return 0;
}

详细

Test #1:

score: 0
Wrong Answer
time: 2ms
memory: 3604kb

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: 14
1 3 1 4 2 3 4 2 5 1 4 2 5 1 
Case #3: 11
1 4 2 3 1 4 3 1 4 5 1 
Case #4: 5
1 2 1 3 1 
Case #5: 14
1 2 3 1 2 4 3 1 5 2 4 5 3 1 
Case #6: 10
1 2 1 3 1 3 1 4 2 1 
Case #7: 5
1 2 1 3 1 
Case #8: 17
1 3 2 1 3 4 2 1 4 2 3 4 2 4 3 5 1 
Case #9: IMPOSSIBLE
Case #10: 10
1 2 1 ...

result:

wrong answer the slide from 3 to 5 hasn't be used (test case 2)

Test #2:

score: 0
Wrong Answer
time: 365ms
memory: 12844kb

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: 253968
1 18 13 9 5 3 7 4 17 7 4 17 7 4 17 7 4 17 7 4 17 7 4 17 7 4 17 7 4 17 7 4 17 7 4 17 7 4 17 7 4 17 7 4 17 7 4 17 7 4 17 7 4 17 7 4 17 7 4 17 7 4 17 7 4 17 7 4 17 7 4 17 7 4 17 7 4 17 7 4 17 7 4 17 7 4 17 7 4 17 7 4 17 7 4 17 7 4 17 7 4 17 7 4 17...

result:

wrong answer the slide from 2 to 155 hasn't be used (test case 3)