数独是一种经典的逻辑填数字游戏。
给定一个 9 \times 9 的方格盘,其中一部分格子已经填好了 1 到 9 之间的数字。你需要在剩余的格子中填入 1 到 9 的数字,使得:
现在给出 T 个未填满的数独,请你分别把它们补充完整并输出。
数据保证:每个数独都有且只有一个解。
输入第一行一个整数 T ,表示数独的个数。
接下来依次给出 T 个数独。每个数独占 9 行,每行一个长度为 9 的数字串,表示该行的 9 个格子;其中 0 表示该格待填,其余数字表示已填好的数字。
0
相邻两个数独之间用一个空行分隔。
按照输入顺序输出 T 个完整的数独。每个数独占 9 行,每行 9 个数字。
2 280000007 000680000 000002305 002105030 008000000 941070006 109050602 407961000 005700091 000300240 100005007 000087001 403090106 001700008 000050400 306009004 075040060 804200005
284539167 513687249 796412385 672145938 358296714 941378526 139854672 427961853 865723491 587316249 139425687 642987531 453892176 261734958 798651423 326579814 975148362 814263795
对于全部数据, 1 \le T \le 10 ,每个数独保证有唯一解。
设每个数独中已填好的数字个数为 N 。本题按子任务(subtask)计分:
共 40 组测试数据,每个子任务 10 组。
提示:使用回溯搜索即可解决。搜索时利用行、列、宫进行剪枝(例如每次挑选候选数最少的格子填数),可以在本题的数据范围内快速求解。