只过了样例,求助
  • 板块P3916 图的遍历
  • 楼主ssqmnb
  • 当前回复2
  • 已保存回复2
  • 发布时间2025/8/3 19:30
  • 上次更新2025/8/4 08:12:37
查看原帖
只过了样例,求助
1011804
ssqmnb楼主2025/8/3 19:30
#include<bits/stdc++.h>
using namespace std;	
int a[1001][1001],b[1001][1001];
int main(){
	int n,m;
	cin>>n>>m;
	for(int i=1;i<=m;i++){
		int k,l;
		cin>>k>>l;
		a[k][l]=1;
	}
	int x,y;
	for(int i=1;i<=n;i++){
		for(int j=1;j<=n;j++){
			if(a[i][j]==1){
				x=i;
				y=j;
				i=j;
				j=1;
			}if(j==n&&a[i][j]!=1){
				a[x][y]=-1;
			}
		}
	}
	int maxx,ax[1001],ay[1001],p=0;
	for(int i=1;i<=n;i++){
		maxx=i;
		for(int j=i;j<=n;j++){
			for(int k=1;k<=n;k++){
				if(a[j][k]==1){
					p++;
					if(b[j][k]==1){
						break;
					}
					b[j][k]=1;
					ax[p]=j;
					ay[p]=k;
					j=k;
					if(maxx<j){
						maxx=j;
					}
				}if(a[j][k]==-1){
					if(maxx<k){
						maxx=k;
					}break;
				}
			}for(int c=1;c<=p;c++){
				b[ax[c]][ay[c]]=0;
				ax[c]=0;
				ay[c]=0;
			}
		}cout<<maxx<<" ";
	}
	return 0;
}
2025/8/3 19:30
加载中...