puzzle(0412)日历拼图

目录

一,规则

二,每日拼图

2022年2月

2022年3月

竖条下滑问题

2022年4月

2022年5月

2022年6月

三,术语

四,启发式搜索策略

1,数独

2,策略一

3,策略二

4,策略三

5,策略四

6,策略五

7,策略六

五,数字化

1,读取图片并二值化

2,边缘检测

3,轮廓检测

4,求解格子尺寸、坐标

5,计算有效轮廓数量

6,坐标微调

7,手动删减轮廓

8,解析空出来的3个格子

8,连通性计算

9,完整代码

六,以解生解

1,大拇指

2,可视化

3,U型

4,新解

5,日期汇总

6,完整代码V1

7,BUG修复

8,日期优化(完整代码V2)

9,BUG修复、新增检查(完整代码V3)

七,说明

八,直接求解

1,可视化V2版

2,直接求解


一,规则

每天根据月、日、星期去掉3个格子,剩下的格子刚好全部覆盖。

日历拼图有两千多组合,如果所有组合都能拼的话,那真的太神奇了。

二,每日拼图

2022年2月

根据下面的数字化的方法,2022年2月1日-2月28日的答案分别是:

2月1日周二
  1  0  1  8  2  2  0
  1  1  1  8  8  2  0
  0  3  3  9  8  2  2
 10  3  3  9  9  9  5
 10  4  3  5  5  5  5
 10  4  4  4  6  6  6
 10  4  7  7  7  0  6
  0  0  0  0  7  7  6
2月2日周三
  1  0  1  2  3  3  0
  1  1  1  2  2  3  0
  4  0  9  8  2  3  3
  4  9  9  8  2  5  5
  4  9  6  8 10  5  5
  4  4  6  8 10  7  5
  6  6  6 10 10  7  0
  0  0  0  0  7  7  7
2月3日周四
  1  0  1  2  3  3  0
  1  1  1  2  2  3  0
  4  4  0  2  2  3  3
  8  4  4  4  5  5  5
  8  6  9  9  9  5  7
  8  6  9 10 10  5  7
  8  6  6  6 10 10  7
  0  0  0  0  0  7  7
2月4日周五
 10 0 10  7  1  1  0
 10  10 10  7  7  1  0
  2  2  2  0 7  1  1
  2  4  8  8  8  3  3
  2  4  8  3  3  3  9
  4  4  4  6  5  5  9
  6  6  6  6  5  5  9
  0  0  0  0  5  0  9
2月5日周六
  1  0  2  2  3  3  0
  1  1  2  4  4  3  0
  8  1  2  4  0  3  3
  8  1  2  4  4 10  5
  8  6  9 10 10 10  5
  8  6  9  9  5  5  5
  6  6  6  9  7  7  7
  0  0  0  0  7  7  0
2月6日周日
  1  0  1  3  3  8  0
  1  1  1  3  8  8  0
  2  2  3  3  8  0  5
  9  2  4  4  5  5  5
  9  2 10  4  4  4  5
  9  2 10  6  6  6  7
  9 10 10  0  6  6  7
  0  0  0  0  7  7  7
2月7日周一
  1  0  1  2  2  2  0
  1  1  1  2  3  3  0
  8  8  8  2  4  3  0
  8 10 10  4  4  3  9
 10 10  5  4  4  3  9
  5  5  5  6  6  7  9
  5  6  6  6  0  7  9
  0  0  0  0  7  7  7
2月8日周二
  1  0  1  2  3  3  0
  1  1  1  2  2  3  0
  4  4  4  2  2  3  3
  0  4  8  5  5  5  5
  6  4  8  8  8  7  5
  6  9  9  9  9  7  7
  6  6  6 10 10  0  7
  0  0  0  0 10 10  7
2月9日周三
  1  0  1  2  3  3  0
  1  1  1  2  2  3  0
  4  4  4  8  2  3  3
  4  0  6  8  2  5  5
  4  9  6  8 10  5  5
  9  9  6  8 10  7  5
  9  6  6 10 10  7  0
  0  0  0  0  7  7  7
2月10日周四
  1  0  1  2  3  3  0
  1  1  1  2  2  3  0
  4  4  4  2  2  3  3
  5  4  0  6  6  6  8
  5  4  6  6  8  8  8
  5  5  5  7  7  7  7
  9  9  9  9 10 10  7
  0  0  0  0  0 10 10
2月11日周五
  1  0  1  8  2  2  0
  1  1  1  8  8  2  0
  9  3  3  3  8  2  2
  9  7  3  0  4  4  4
  9  7  3  6  6  5  4
  9  7  6  6  6  5  4
  7  7 10 10 10  5  5
  0  0  0  0 10  0  5

2月12日周六
  1  0  1  2  3  3  0
  1  1  1  2  2  3  0
  4  4  4  2  2  3  3
  8  4  5  5  0  6  6
  8  4  9  5  5  5  6
  8  9  9  7  7  7  6
  8  9 10 10 10  7  6
  0  0  0  0 10  7  0
2月13日周日
  1  0  1  2  3  3  0
  1  1  1  2  2  3  0
  4  4  4  4  2  3  3
  8  9  9  4  2  0  5
  8 10  9  9  5  5  5
  8 10  6  6  6  7  5
  8 10 10  0  6  7  7
  0  0  0  0  6  7  7
2月14日周一
  1  0  1  4  2  2  0
  1  1  1  4  7  2  0
  3  4  4  4  7  2  2
  3  3  3  3  7  5  0
  8  6  6  6  7  5  5
  8  6  6 10 10  9  5
  8  8 10 10 0 9  5
  0  0  0  0  9  9  9
2月15日周二
  7  0  1  8  8  8  0
  7  1  1  2  9  8  0
  7  1  1  2  9  9  3
  7  4  2  2  2  9  3
  0  4 10 10  3  3  3
  4  4 10 5  5  5  5
  4 10 10 5  6  0  6
  0  0  0  0  6  6  6
2月16日周三
  1  0  1  5  2  3  0
  1  1  1  5  2  3  0
  4  5  5  5  2  3  3
  4  4  4  6  2  7  3
  4  0  9  6  6  7  7
  9  9  9  6  6 10  7
  9  8  8  8  8 10 0
  0  0  0  0  8 10 10

2月17日周四
  1  0  2  2  2  3  0
  1  1  6  6  2  3  0
  4  1  6  5  2  3  3
  4  6  6  5  5  5  7
  4  4  0  5 10  8  7
  9  4  9 10 10  8  7
  9  9  9 10 10  8  7
  0  0  0  0  0  8  8
2月18日周五
  1  0  2  2  2  3  0
  1  2  2  3  3  3  0
  1  1  1  4  4  4  4
  5  5  5  5  8  8  6
  5  7  9  0  8  6  6
  7  7  9  8  8  6  6
  7  9  9  9 10 10 10
  0  0  0  0 10  0 10
2月19日周六
  1  0  1  10  10  10  0
  1  1  1  2  2  10  0
  3  4  4  2  2  10  6
  3  5  4  2  6  6  6
  3  5  4  4  0  7  6
  3  5  5  8  7  7  9
  8  8  8  8  7  9  9
  0  0  0  0  7  9  0
2月20日周日
  1  0  1  2  2  2  0
  1  1  1  3  2  7  0
  3  3  3  3  2  7  7
  4  5  5  5  6  6  7
  4  5  8  6  6  0  7
  4  5  8  10  10  9  9
  4  8  8  0  10  9  9
  0  0  0  0  10  10  9
2月21日周一
  1  0  1  2  2  2  0
  1  1  1  4  2  3  0
  4  4  4  4  2  3  3
  5  6  6  6  7  7  3
  5  6  8  8  8  7  0
  5  6  8  9  9  7  7
  5  9  9  9  0 10 10
  0  0  0  0 10 10 10
2月22日周二
  1  0  2  2  3  3  0
  1  1  1  2  4  3  0
  1  5  5  2  4  3  3
  5  5  6  6  4  4  4
  9  9  6  6  6  8  7
  0  9  8  8  8  8  7
  9  9 10 10 10  0  7
  0  0  0  0 10 10  7
2月23日周三
  1  0  1  2  3  3  0
  1  1  1  2  2  3  0
  4  4  4  4  2  3  3
  5  5  5  5  2  6  6
  7  7  7  5  9  6  6
  7  0  8  8  9 10  6
  7  8  8  9  9 10  0
  0  0  0  0 10 10 10
2月24日周四
  1  0  1  2  2  2  0
  1  1  1  5  3  2  0
  4  5  5  5  3  3  7
  4  5  6  6  6  3  7
  4  9  6  6  7  7  7
  4  9  0  8  8  8  8
  9  9  9 10 10 10  8
  0  0  0  0  0 10 10
2月25日周五
  2  0  1  1  1  1  0
  2  2  2  3  3  3  0
  2  5  5  3  4  4  4
  5  5  6  6  6  6  4
  7  8  8  9  9  6  4
  7  7  8 0  9  9  9
  7  7  8  8 10 10 10
  0  0  0  0 10  0 10
2月26日周六
  1  0  1  2  2  2  0
  1  1  1  3  2  4  0
  5  6  6  3  2  4  4
  5  7  6  3  3  3  4
  5  7  6  6  8  8  4
  5  7  7  9  0  8  8
  9  9  9  9 10 10 10
  0  0  0  0 10 10  0
2月27日周日
  1  0  1  5  5  2  0
  1  1  1  5  2  2  0
  3  4  5  5  2  2  7
  3  4  4  6  7  7  7
  3  9  4  6  6  6  6
  3  9  4  8  8  0 10
  9  9  9  0  8  8 10
  0  0  0  0 10 10 10
2月28日周一
  1  0  1  2  2  2  0
  1  1  1  5  2  3  0
  4  5  5  5  2  3  3
  4  5  6  6  7  7  3
  4  4  4  6  6  7  3
  8  9  9  9  9  7  0
  8  8  8  8  0 10 10
  0  0  0  0 10 10 10

拼的时候经常会出现,还有一块拼不上,而空出来的格子组成的是另一个块的形状的情况,如:

  

 

2月22日周二

拼的时候再次出现这种情况:

稍微调整就能得到:

2022年3月

2022年3月1日-3月31日的答案分别是:

3月1日周二
  1  1  0  2  2  2  0
  1  1  2  2  3  3  0
  0  1  6  4  4  3  5
  6  6  6  7  4  3  5
  6  8  9  7  4  3  5
  8  8  9  7  7  7  5
  8  9  9  9 10  0 10
  0  0  0  0 10 10 10
3月2日周三
  1  2  0  3  4  4  0
  1  2  2  3  3  4  0
  1  0  2  3  3  4  4
  1  1  2  5  5  5  5
  6  7  7  7  8  8  8
  6  7  9  9  8 10  8
  6  6  6  9  9 10  0
  0  0  0  0 10 10 10
3月3日周四
  1  2  0  2  5  5  0
  1  2  2  2  5  3  0
  1  4  0  5  5  3  3
  1  4  4  4  4  7  3
  6  6  6  7  7  7  9
  6  8  8  8  9  9  9
  6  8  8 10 10 10  9
  0  0  0  0  0 10 10
3月4日周五
  1  1  0  10  10  10  0
  3  1  1  1  2  10  0
  3  3  3  0  2  10  7
  3  4  6  6  2  2  7
  4  4  6  5  5  5  7
  4  6  6  5  5  7  7
  8  8  8  8  9  9  9
  0  0  0  0  9  0  9
3月5日周六
  1  2  0  2  3  3  0
  1  2  2  2  3  3  0
  1  4  4  4  0  3  9
  1  5  4  6  6  6  9
  7  5  4  6  8  8  9
  7  5  5  6  8  9  9
  7  7  5 8 8 10 10
  0  0  0  0 10 10  0
3月6日周日
  1  2  0  2  3  3  0
  1  2  2  2  3  3  0
  1  1  4  4  3  0  7
  5  1  4  6  7  7  7
  5  8  4  6  6  6  7
  5  8  4 10 10  6 9
  5  8  8 0 10 10 9
  0  0  0  0 9 9 9
3月7日周一
  1  1  0  2  2  2  0
  1  1  2  2  3  3  0
  1  5  4  4  4  3  0
  5  5  4  6  4  3  3
  5  6  6  6  7  7  7
  8  9  9  9  9 10  7
  8  8  8  8  0 10  7
  0  0  0  0 10 10 10
3月8日周二
  1  1  0  2  3  3  0
  1  1  1  2  2  3  0
  4  4  4  4  2  3  3
  0  5  5  5  6  6  6
  7  5  8  8  8  8  6
  7  7  7  9  9  8  6
  7  9  9  9 10  0 10
  0  0  0  0 10 10 10

3月9日周三
  1  1  0  2  2  3  0
  1  2  2  2  3  3  0
  1  1  7  7  3  3  4
  5  0  7  6  6  6  4
  5  7  7  6  8  8  4
  5  9  9  6  8 10  4
  5  5  9  9  8 10  0
  0  0  0  0 10 10 10
3月10日周四
  1  1  0  2  2  2  0
  3  1  1  2  5  5  0
  3  3  3  2  5  9  4
  3  6  0  5  5  9  4
  6  6  7  7  7  9  4
  6  8  7  8  9  9  4
  6  8  8  8 10 10 10
  0  0  0  0  0 10 10
3月11日周五
  1  1  0  2  3  3  0
  4  1  1  2  2  3  0
  4  4  4  2  2  3  3
  4  7  5  0  6  6  6
  7  7  5  5  5  5  6
  7  8  9  9  9  9  6
  7  8  8  8 10 10 10
  0  0  0  0 10  0 10
3月12日周六
  1  2  0  2  3  3  0
  1  2  2  2  5  3  0
  1  4  5  5  5  3  3
  1  4  4  6  0  8  8
  7  4  4  6  8  8 10
  7  7  7  6  6  6 10
  7  9  9  9  9 10 10
  0  0  0  0  9 10  0
3月13日周日
  1  2  0  2  3  3  0
  1  2  2  2  4  3  0
  1  1  4  4  4  3  3
  5  5  5  5  4  0  7
  5  6  6  6  6  7  7
  8  8  9  9  9  7 10
  8  8  8  0  9  9 10
  0  0  0  0 10 10 10
3月14日周一
  1  2  0  2  3  3  0
  1  2  2  2  4  3  0
  1  1  1  4  4  3  3
  5  6  6  4  9  7  0
  5  6  8  9  9  7  7
  5  6  8  9  9 10  7
  5  6  8  8  0 10  7
  0  0  0  0 10 10 10
3月15日周二
  1  1  0  2  3  3  0
  1  1  1  2  3  4  0
  5  5  5  2  3  4  4
  5  7  5  2  3  6  4
  0  7  9  6  6  6  8
  7  7  9  6  8  8  8
  9  9  9 10 10  0  8
  0  0  0  0 10 10 10
3月16日周三
  1  2  0  2  3  3  0
  1  2  2  2  4  3  0
  1  1  1  4  4  3  3
  5  5  8  4  6  7  7
  5  0  8  9  6  7  7
  5  8  8  9  6 10  7
  5  8  9  9  6 10  0
  0  0  0  0 10 10 10
3月17日周四
  1  2  0  2  3  3  0
  1  2  2  2  4  3  0
  1  1  7  5  4  3  3
  6  7  7  5  4  4  4
  6  7  0  5  5  8  8
  6  9  9  9  5 10  8
  6  9  9 10 10 10  8
  0  0  0  0  0 10  8

3月18日周六
  1  2  0  6  3  3  0
  1  2  2  6  4  3  0
  1  5  2  6  4  3  3
  1  5  6  6  4  4  4
  7  5  5  0  8  8  8
  7  7  7  9  9  8  8
  7  9  9  9 10 10 10
  0  0  0  0 10  0 10
3月19日周六
  1  2  0  2  3  3  0
  1  2  2  2  5  3  0
  1  4  5  5  5  3  3
  1  4  4  6  5  7  7
  8  8  4  6  0  7  7
  8  9  4  6  6  6  7
  8  9  9  9  9 10 10
  0  0  0  0 10 10  0
3月20日周日
  1  2  0  2  3  3  0
  1  2  2  2  5  3  0
  1 &nb

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值