构建非地理幅度优化器™
非图是日本的益智游戏,其目标是根据连续区域的列表绘制黑白图片,如下所示: 将行或列的非地理大小定义为该行或列中连续黑色区域的数量。例如,第一行的非地理大小为1,因为该行中有一个2平方的区域。第8行的非地理大小为3,因为它的第2行,第2行,第1行。 空行或列的非地理大小为0。 您的任务是编写一个程序,使用一个非图的解决方案网格,并生成一个具有尽可能小的填充正方形的解决方案网格,其中每一行和每一列与给定的解决方案网格具有相同的非成像性。 例如,填充了所有正方形的非图格网在每行或每列上的非图量级为1: 只需在网格上有一条对角线条纹,就可以大大减少实心方块的数量,从而达到相同的非影像大小: 您的程序将从该文件中接收到50,000行的输入(1.32 MB tar.gz文本文件; 2.15 MB未压缩),每行代表一个16×16非图解决方案网格,其中随机填充(80%黑色)正方形。输出另外50,000行,每行包含对应输入网格的优化解决方案网格。 每个网格都表示为具有43个字符的base64字符串(从左到右,然后从上到下编码正方形),您的程序将需要以相同格式返回其输出。例如,文件中的第一个网格为E/lu/+7/f/3rp//f799xn/9//2mv//nvj/bt/yc9/40=,并呈现为: 网格从其开始E映射到000100,因此第一行的前六个单元格除第四个单元格外均为白色。下一个字符是/映射到的字符111111,因此接下来的6个单元格全为黑色-依此类推。 您的程序实际上必须为50,000个测试用例中的每一个返回一个具有正确的非地理大小的解决方案网格。如果没有发现更好的结果,则可以返回与输入相同的网格。 返回最少填充总数(以任何语言显示)的程序是赢家,而较短的代码是决胜局。 当前记分牌: 3,637,260 —爪哇Sleafar 7,270,894 -Matlab瑕疵 10,239,288 —乔·Z·巴什(Bash)