摘要:
http://poj.org/problem?id=3076POJ 3076 Sudoku求解规模为16*16的数独问题,还是数独,呵呵,直接改了上题的代码就是了。。所以也不废话了,嘿嘿。。。#include#includeconst int MAX_COLOUMN = 16*16+16*16+16*16+16*16+2;//最多出现列数const int MAX_ROW = 16*16*16+2;//最多出现的列数int cnt[MAX_COLOUMN];//cnt[i]统计第i列1的个数int most,coloumn;bool ans[MAX_ROW];//ans存放最终选中的行//跳舞 阅读全文
摘要:
http://poj.org/problem?id=2676POJ 2676 Sudoku也是求解规模为9*9的数独问题,与POJ 3074 Sudoku相同的问题,只是修改了输入输出格式而已。。。所以也不废话了,嘿嘿。。。#include#includeconst int MAX_COLOUMN = 81+9*9+9*9+9*9+2;//最多出现列数const int MAX_ROW = 81*9+2;//最多出现的列数int cnt[MAX_COLOUMN];//cnt[i]统计第i列1的个数int most,coloumn;bool ans[MAX_ROW];//ans存放最终选中的行/ 阅读全文
摘要:
http://poj.org/problem?id=3074POJ 3074 Sudoku大意:求解规模为9*9的数独问题分析:对于每一行,每一列,每一宫,数字1,2。。。9都需出现1次且只能是一次,可转化为精确覆盖问题,用跳舞链解决建模型:行数为9*9*9,数独中,第i行j列放数字k的状态存储在图中第(i*9+j)*9+k行中列数为9*9+9*9+9*9+9*9,其中第一个9*9代表第i格是否已填满,用第二个9*9确保每行的数字唯一且均出现一次第三个9*9确保每列的数字唯一且出现一次第四个9*9确保每宫的数字唯一出现1次#include#includeconst int MAX_COLOUM 阅读全文