首先看这个数据范围,可以知道的是一个数的因子数不会太大。暴力枚举可以发现,10000以内因子数最大的数是 9240 ,共有 64 个因子。
所以可以枚举因子来确定矩阵的行数和列数。即枚举x∗y=n 中的x , 然后y=n/x
接着根据结果构造出新矩阵,在新矩阵上进行BFS求连通块。
这样最多跑 64 次 BFS 求连通块。
有一串长度为 n 的字母序列,每个字母代表一种颜色。现在需要将这些颜色按顺序逐行填充到一个矩形展板上。展板必须恰好容纳全部颜色,即行数 r 与列数 c 满足 rimesc=n,同时展板的宽度(列数)不能小于 2。
在展板上,如果两个上下或左右相邻的格子颜色相同,则它们属于同一个色块。一个色块定义为一组互相连通且颜色相同的格子。
请你选择一个满足条件的行数与列数,使得展板上的色块总数尽可能少,并输出这个最小的色块数量。
约束:2≤n≤104,字母序列仅包含小写字母。
By signing up a CodeFun2000 universal account, you can submit code and join discussions in all online judging services provided by us.