萌新求助后面四个点WA了
查看原帖
萌新求助后面四个点WA了
222578
jingkongwanglimiaoa楼主2020/7/30 23:18

为什么啊为什么啊为什么啊

# include <cstdio>
# include <iostream>
# include <cstring>
# include <algorithm>
using namespace std;
struct sth{
	int sum,num;
}e[100010];
struct px{
	int x,y;
}a[100010];
int n,m,cnt = 0,lk[100010],r = 1,q[100010];
bool f[100010];
void set(int x,int y){
	e[++cnt]={y,lk[x]};
	lk[x] = cnt;
}
void dfs(int x)
{
	if (f[x])
	return;
	f[x] = true;
	printf("%d ",x);
	for (int i = lk[x];i != 0;i = e[i].num)
	dfs(e[i].sum);
}
void bfs(int x)
{
	q[1] = 1;
	f[x] = true;
	for (int l = 1;l <= r;l++)
	{
		printf("%d ",q[l]);
		for (int i = lk[q[l]];i != 0;i = e[i].num)
		{
			if (!f[e[i].sum])
			{
				q[++r] = e[i].sum;
				f[e[i].sum] = true;
			}
		}
	}
}
bool pxd(px a,px b)//结构体排序 
{
	if (a.y > b.y) return true;
	return false;
}
int main()
{
	memset(f,false,sizeof(f));
	scanf("%d %d",&n,&m);
	for (int i = 1;i <= m;i++)
	scanf("%d %d",&a[i].x,&a[i].y); 
	sort(a+1,a+m+1,pxd);//快速排序
	for (int i = 1;i <= m;i++)
	set(a[i].x,a[i].y);
	dfs(1);
	printf("\n");
	memset(f,false,sizeof(f));
	bfs(1);
}
2020/7/30 23:18
加载中...