#296. Dance Mooves

0

Dance Mooves

Dance Mooves

题目描述

Farmer John 的奶牛们正在炫耀她们新的舞步!

一开始,所有 NN 头奶牛(2≤N≤1052\le N\le 10^5)站成一排,第 ii 头奶牛站在队列的第 ii 个位置。舞步序列由 KK(1≤K≤2⋅1051\le K\le 2\cdot 10^5)对位置 (a1,b1),(a2,b2),…,(aK,bK)(a_1,b_1), (a_2,b_2), \ldots, (a_{K},b_{K}) 给出。在舞蹈的第 i=1…Ki=1\ldots K 分钟,队列中位置 aia_i 和 bib_i 的奶牛交换。

同样的 KK 次交换会在第 K+1…2KK+1\ldots 2K 分钟再次发生,在第 2K+1…3K2K+1\ldots 3K 分钟再次发生,如此循环往复,无限持续。换句话说:

在第 11 分钟,位置 a1a_1 与 b1b_1 的奶牛交换。 在第 22 分钟,位置 a2a_2 与 b2b_2 的奶牛交换。 ... 在第 KK 分钟,位置 aKa_{K} 与 bKb_{K} 的奶牛交换。 在第 K+1K+1 分钟,位置 a1a_{1} 与 b1b_{1} 的奶牛交换。 在第 K+2K+2 分钟,位置 a2a_{2} 与 b2b_{2} 的奶牛交换。 以此类推……

对于每一头奶牛,请确定她在队列中将会占据过的不同位置数量。

输入格式

第一行包含整数 NN 和 KK。接下来的 KK 行中,每行包含一对数 (a1,b1)…(aK,bK)(a_1,b_1) \ldots (a_K, b_K)(1≤ai<bi≤N1\le a_i<b_i\le N)。

输出格式

输出 NN 行,其中第 ii 行输出奶牛 ii 能到达的不同位置数量。

5 4
1 3
1 2
2 3
2 4
4
4
3
4
1

提示

奶牛 11 到达位置集合 {1,2,3,4}\{1,2,3,4\}。 奶牛 22 到达位置集合 {1,2,3,4}\{1,2,3,4\}。 奶牛 33 到达位置集合 {1,2,3}\{1,2,3\}。 奶牛 44 到达位置集合 {1,2,3,4}\{1,2,3,4\}。 奶牛 55 从不移动,所以她从未离开位置 55。 计分: 测试点 1-5 满足 N≤100,K≤200N\le 100, K\le 200。 测试点 6-10 满足 N≤2000,K≤4000N\le 2000, K\le 4000。 测试点 11-20 无额外限制。 题目来源:Chris Zhang

标签: USACO|2021|Silver

来源

USACO|2021|Silver