有⼀个 n×n 的棋盘,每个格⼦有个坐标(x,y),(1≤x,y≤n) 每个格⼦被染成了黑白
两种颜⾊之⼀。请你计算棋盘中⿊⾊
联通块个数。
两个格⼦联通当且仅当他们有⼀条相同的边。
输⼊有 n+1 ⾏。第⼀⾏有⼀个整数 n 表⽰棋盘的⻓和宽。
接下来 n ⾏,每⾏有⼀个字符串。第 i ⾏的字符串描述了棋盘第 i ⾏⿊⾊区域的信息。
每个区域都有⼀个数字 j,表⽰棋盘上 (i,j) 左边的格⼦是⿊⾊
。或者包含两个整数 j,k,在字符串中表⽰为 j-k
,表⽰第 i ⾏中 [j,k]列的部分都是⿊⾊
。
这样描述的区域个数不会超过 106 个。
每⼀⾏字符串描述的两个区域之间会⽤ ,
隔开,如果是最后⼀个区域,会在后⾯加上⼀个分号 ;
。特殊的,如果某⼀⾏全是⽩⾊
格⼦,那么描述这⾏的字符串只是 ;
。
举例说明,若棋盘⼤⼩为 5,某⼀⾏字符串信息为 2,4-5;
,它描述的棋盘信息为:⽩ ⿊ ⽩ ⿊ ⿊
。
输出包括若⼲⾏,每⾏有两个整数 s 和 n,s 表⽰联通块的⼤⼩,n 表⽰所有联通块中,⼤⼩恰好为 s 的联通块个数。
请按照联通块的⼤⼩,从⼤到⼩顺序输出。
对于 100% 的数据,1≤n≤3×104。
8
2,4-5;
5-6;
2-3,6;
6-7;
;
2-4;
2,4,6-7;
2-3,6-7;
7 2
4 1
2 1
1 1
请问各位大佬有什么做法可以不 MLE 呢?(本蒟蒻一下子想不出来了)