原本输入用的是cin,超时了;改成scanf,又WA了……求调试,谢谢
查看原帖
原本输入用的是cin,超时了;改成scanf,又WA了……求调试,谢谢
1126582
Bronya_Star楼主2024/1/20 15:31
#include<bits/stdc++.h> 
using namespace std;
const int N=5e5+10;
struct Node{int x,y;}e[N];
bool cmp(Node a,Node b)
{
	if(a.x!=b.x) return a.x<b.x;//如果不相等,返回a.x<b.x 
	return a.y<b.y;//如果相等,则它们为同一个结点的边,用到达结点进行排序 
}
int main()
{
	 int t,n,m;
	 scanf("%d",&t);
	 while(t--)
	 {
	 	scanf("%d%d",&n,&m);
		 	//n是结点的个数,m是边的个数 
	 	for(int i=1;i<=m;i++) 
	 		scanf("%d%d",&e[i].x,&e[i].y);
	 	sort(e+1,e+m+1,cmp);
		 	//用sort进行升序排序 
	 	for(int i=1,j=1;i<=n;i++) //按照结点顺序输出,i为初始结点,j为到达结点 
	 	{
	 		while(j<=m && e[j].x==i) printf("%d",e[j++].y);
	 		puts("");
	 	}
	 }
	return 0;
}  
2024/1/20 15:31
加载中...