社区讨论

10分求调

B3852出边排序 2参与者 1已保存回复 0

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
0 条
当前快照
1 份
快照标识符
@mlw246q8
此快照首次捕获于
2026/02/21 16:28
2 周前
此快照最后确认于
2026/02/23 21:35
2 周前
查看原帖

亖亡记录

C++代码:

CPP
#include <bits/stdc++.h>
using namespace std;
const int MAXN = 500001;
int T , n , m , u , v , sum[MAXN];
struct graph {
	int num , ID , size;
}a[MAXN] , ans[MAXN][1000];
bool cmp(graph a , graph b) {
	if (a.num == b.num) return a.ID < b.ID;
	return a.num < b.num;
}
int main() {
	scanf("%d" , &T);
	for (int i = 1 ; i <= T ; i++) {
		scanf("%d%d" , &n , &m);
		for (int j = 1 ; j <= n ; j++) {
			scanf("%d" , &a[j].num);
			a[j].ID = j;
		}
		for (int j = 1 ; j <= m ; j++) {
			scanf("%d%d" , &u , &v);
			ans[u][++sum[u]].num = a[v].num;
			ans[u][sum[u]].ID = v;
			ans[u][0].size++;
		}
		for (int j = 1 ; j <= n ; j++) {
			sort(ans[j] + 1 , ans[j] + ans[j][0].size + 1 , cmp);
		}
		for (int j = 1 ; j <= n ; j++) {
			if (ans[j][1].ID == 0) {
				printf("\n");
				continue;
			} else {
				for (int k = 1 ; k <= ans[j][0].size ; k++) {
					printf("%d " , ans[j][k].ID);
				}
				printf("\n");
			}
		}
	}
	return 0;
}

样例输出:

LATEX
2 3 

1 2 
1 2 2 3 3 
1 2 3 
1 1 2 2 3 

回复

0 条回复,欢迎继续交流。

正在加载回复...