SUNCHAOYI @ 2020-06-28 21:06:41
有⼀个 黑白两种颜⾊之⼀。请你计算棋盘中⿊⾊联通块个数。
两个格⼦联通当且仅当他们有⼀条相同的边。
输⼊有
接下来
每个区域都有⼀个数字 ⿊⾊。或者包含两个整数 j-k,表⽰第 ⿊⾊。
这样描述的区域个数不会超过
每⼀⾏字符串描述的两个区域之间会⽤ , 隔开,如果是最后⼀个区域,会在后⾯加上⼀个分号 ;。特殊的,如果某⼀⾏全是⽩⾊格⼦,那么描述这⾏的字符串只是 ;。
举例说明,若棋盘⼤⼩为 2,4-5;,它描述的棋盘信息为:⽩ ⿊ ⽩ ⿊ ⿊。
输出包括若⼲⾏,每⾏有两个整数
请按照联通块的⼤⼩,从⼤到⼩顺序输出。
对于
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 呢?(本蒟蒻一下子想不出来了)
by liujiageng @ 2020-06-28 21:13:52
应该只存黑色区域的坐标就行
by Mevinsp @ 2020-06-28 21:14:28
应该只存黑色区域的坐标
by Mevinsp @ 2020-06-28 21:14:36
???
by liujiageng @ 2020-06-28 21:14:51
???
by SUNCHAOYI @ 2020-06-28 21:15:25
怎么个存法?
by Mevinsp @ 2020-06-28 21:16:30
emmm
by liujiageng @ 2020-06-28 21:17:13
俩一维数组或结构体数组
by Mevinsp @ 2020-06-28 21:18:07
我觉得状压DP应该也行吧
by psoet @ 2020-06-28 21:33:54
用数组存坐标和编号,排序两次分别按x,y坐标为第一关键字。每次排序后扫一次将编号并查集合并。@SUNCHAOYI
by 小粉兔 @ 2020-06-28 21:42:18
相邻两行有相交的黑色连续段之间连边,然后直接 DFS