Description
The puzzle game of Sudoku is played on a boardN2 ×N2 cells. The cells are grouped inN×NSquaresN×NCells each. Each cell is either empty or contains a number between 1 andN2.
The sudoku position is correct when numbers in each row, each column and each square are different. the goal of the game is, starting from some correct position, fill all empty cells so that the final position is still correc
Question :.... Do I still use Sudoku?
First of all, the general solutions are brute-force searches .. So I learned the X Algorithm for Data Structure Optimization of dancing-links, or the DLX Algorithm for short.
Although the name of dancing-links is nice, it is actually a two-way cross linked list .. However, due to the various failures during debugging, the pointer is still looking at and worried (people who often debug the chain structure must have
Introduced
The Sudoku may only be populated with partial numbers, in which the missing digits are used. Said.
Attention matters
A valid Sudoku (only partially populated) is not necessarily solvable. We just need to make the padding space valid.
Thoughts of disintegration
The Sudoku is preprocessed according to rows, columns, and blocks, and then separately j
According to the demand nine Sudoku effect can have many kinds. Nine Sudoku Effect application is more extensive, realize also a variety of, such as the option drawer effect.
Here is a demo that shows nine Sudoku effects on UITableView.
Idea: Initialize the custom button on the cell, depending on the preset number of buttons per line to determine their position
The algorithm originated from a friend for help. Friends in an electrical store to work, every year to the end of the need to do data, light on the ability of individuals can not be solved. So to mention this matter to me, as a proud program of apes, I said minutes to you to solve, but after detailed understanding, found that the problem is not so simple, so began to write an algorithm to help friends solve the problem.The problem is described as follows:Fill in all the blanks, guaranteeing that
A piece of code of the sudoku game forgot to use a search algorithm with the depth-first or breadth-first, and used some probability algorithms for improvement. In this case, I was afraid that I would accidentally delete it in a few years, g. JS seems to be included in another blog post, so I will not post it here.At the beginning, this code had some reasons. The ancients said: the mountains are not famous for being high, and the water is not famous f
I just saw that many people use DFS + Pruning for Sudoku .. What's wrong with my DLX...
But think about the fact that this search pruning is really a lot, but it's still faster than DLX...
# Include # Include String . H> # Include Using Namespace STD; # Define N 300000 # Define INF 0x3fffffff Char G [ 10 ] [ 10 ]; Int Ans [ 1000 ]; Int U [ 5000 ], D [ 5000 ], R [ 5000 ], L [ 5000 ], Num [ 5000 ], H [ 1000 ], Save [ 5000 ], Save1 [ 5000 ]
Question Portal
It is obviously a search. However, there is no pruning at the beginning, and the brute force search starts from,NaturallyT has 6 points.
#include
Consider pruning. From the perspective of human intelligenceAlthough I have never playedWe must start from a region with more options, because fewer decisions are available for us. So here we can also use this idea for reference. Every time we make statistics on the number of columns in each row, we have already filled in the number of
DFS ).
A very sad question is that the three arrays split into [9] [9] and thus cross-border wa.
Then there are empty rows between the two sets of outputs, but the empty rows cannot be output after the last group. PE many times.
#include
HDU 1426 Sudoku killer
This problem are relatively easy. The challenge is what to get a concise code. This post shares a very elegant one which traverses each cell of the board only once. The code is rewritten below.1 classSolution {2 Public:3 BOOLIsvalidsudoku (vectorChar>>Board) {4 BOOLrow[9][9] = {false}, col[9][9] = {false}, box[9][9] = {false};5 for(inti =0; I 9; i++) {6 for(intj =0; J 9; J + +) {7 if(Board[i][j]! ='.') {8 intnum = board[i][j]
Idea: Record the number of each column in each row that has appeared, the data is relatively weakIn addition POJ 3074 3076 must use pruning strategy, but to achieve more trouble, or after the DLX to do it againaccepted160k0ms#includePOJ 2676/2918 Sudoku (DFS)
HDU_4069
I remember the day before when I was discussing the Data independence issue in the group, I realized that I had another dancing links thing. As a result, the second day of the Fuzhou online competition had a Data independence issue ......
After learning the Dancing Links, I finally dropped this question A. the difference between this question and the ordinary Sudoku lies in the grouping problem. In the past, it was A small palace that could
Portal
This question is also a very violent search ......
Because the uniqueness is empty at the beginning, and there are only a lot of size restrictions, there is no need to worry about where to start the search, and then determine whether it is legal after the brute force search.
The most disgusting question is reading. Now I learned a trick to determine which part of the grid is located and use Lim [g] [I] [J] to indicate the relationship between the two grids I and j in the G Palace, the pro
/3) *3+k][int (J/3) *3+1]!=0:Try: List_a.remove (a[int (i/3) *3+k][int (J/3) *3+1]) except:Pass ifA[int (I/3) *3+k][int (J/3) *3+2]!=0:Try: List_a.remove (a[int (i/3) *3+k][int (J/3) *3+2]) except:Pass returnlist_areturnA[I][J]View CodeThe most important traversal lookup result function listDataGame_over=false #初始化未找到结果, locate the result settings game_over=truedefListData (a,posx,posy,f):GlobalGame_over#Game_over is a global variable rather than a
The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion;
products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the
content of the page makes you feel confusing, please write us an email, we will handle the problem
within 5 days after receiving your email.
If you find any instances of plagiarism from the community, please send an email to:
info-contact@alibabacloud.com
and provide relevant evidence. A staff member will contact you within 5 working days.