青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

出處:???? http://acm.hnu.cn:8080/online/?action=problem&type=show&id=11203&courseid=0




Sudoku
Time Limit: 1000ms, Special Time Limit:2500ms, Memory Limit:32768KB
Total submit users: 10, Accepted users: 10
Problem 11203 : Special judge
Problem description
A Sudoku puzzle, once solved, is a 9x9 grid of digits organized as a 3x3 grid of smaller 3x3 units. Each of the nine rows must contain every positive digits exactly once, as do each column and also each 3x3 unit. The puzzle is to start from a partially filled 9x9 grid and to fill in the remaining cells using only logic. The puzzle maker usually makes sure that the solution will be unique and that it can be reached using deduction only, without guessing.

This number placing game is gaining popularity in the west, and every second newspaper publishes weekly instances of the puzzle. Somewhere at the head of one such newspaper, someone decided that buying individual instances from a puzzle maker would be too expansive, and instead decided to steal puzzles from other newspapers and also to print randomly generated Sudoku-like grids.

One week later, his assistant gets stuck with the job of printing the solution to the Sudoku puzzles his boss previously published. Unfortunately, his boss doesn’t have those solutions, the randomly generated problems don’t have any solution, and he doesn’t even remember which is which. In despair, the assistant calls for your help.



Input
The first line of the input will contain the number of test cases. Each test case will consist of a 9 by 9 grid of characters, where each character will either be ‘?’ or a digit between 1 and 9 inclusively.

Output
For each test case, you must print back the grid to the standard input, replacing each question mark with an appropriate digit to solve the Sudoku. If a test case does not allow any solution, output ”impossible” instead of a completed grid. If a test case do allow a solution, you can assume that the solution will be unique, and that theoretically it could be reached without guessing.

Test cases are separated by “---” both in the input and in the output.

Sample Input
3
            ??4??9??8
            ?3??5??1?
            7??4??2??
            3??8??1??
            ?5?????9?
            ??6??1??2
            ??8??3??1
            ?2??4??5?
            6??1??7??
            ---
            ??4??9??8
            ?3??5??1?
            7??4??2??
            3??8??1??
            ?5?????9?
            ??6??1??2
            ??8??3??1
            62??4??5?
            6??1??7??
            ---
            3?1????76
            7??9?????
            2?5?3????
            ?????64?1
            ???2?1???
            1?25?????
            ????8?9?3
            ?????9??4
            51????7?8
            
Sample Output
264319578
            839257416
            715486239
            372894165
            451632897
            986571342
            548763921
            127948653
            693125784
            ---
            impossible
            ---
            391452876
            764918532
            285637149
            953876421
            678241395
            142593687
            426785913
            837169254
            519324768
            






??1 #include? < iostream >
??2
??3 using ? namespace ?std;
??4
??5 bool ?x[ 9 ][ 10 ];
??6 bool ?y[ 9 ][ 10 ];
??7 bool ?z[ 9 ][ 10 ];
??8 int ??result[ 9 ][ 9 ];
??9 int ??num = ? 0 ;
?10
?11
?12 int ?GetID(? int ?x,? int ?y?)
?13 {
?14 ???? if ?(?x < ? 3 ? && ?y < ? 3 ?)
?15 ???? return ? 0 ;
?16 ???? else ? if ?(?x < ? 3 ? && ?y >= ? 3 ? && ?y < ? 6 ?)
?17 ???? return ? 1 ;
?18 ???? else ? if ?(?x < ? 3 ? && ?y >= ? 6 ? && ?y < ? 9 ?)
?19 ???? return ? 2 ;
?20 ???? else ? if ?(?x >= ? 3 ? && ?x < ? 6 ? && ?y < ? 3 ?)
?21 ???? return ? 3 ;
?22 ???? else ? if ?(?x >= ? 3 ? && ?x < ? 6 ? && ?y >= ? 3 ? && ?y < ? 6 ?)
?23 ???? return ? 4 ;
?24 ???? else ? if ?(?x >= ? 3 ? && ?x < ? 6 ? && ?y >= ? 6 ? && ?y < ? 9 ?)
?25 ???? return ? 5 ;
?26 ???? else ? if ?(?x >= ? 6 ? && ?x < ? 9 ? && ?y < ? 3 ?)
?27 ???? return ? 6 ;
?28 ???? else ? if ?(?x >= ? 6 ? && ?x < ? 9 ? && ?y >= ? 3 ? && ?y < ? 6 ?)
?29 ???? return ? 7 ;
?30 ???? else ? if ?(?x >= ? 6 ? && ?x < ? 9 ? && ?y >= ? 6 ? && ?y < ? 9 ?)
?31 ???? return ? 8 ;
?32 }

?33
?34
?35 void ?Print()
?36 {
?37 ???? for ?(? int ?i = ? 0 ;?i < ? 9 ;? ++ i?)
?38 ???? {
?39 ???????? for ?(? int ?j = ? 0 ;?j < ? 9 ;? ++ j?)
?40 ?????????????printf( " %d " ,result[i][j]?);
?41 ????????
?42 ???????? if ?(?i < ? 8 ?)?printf( " \n " );
?43 ????}

?44 }

?45
?46
?47 bool ?GetXY(? int & ?xx,? int & ?yy?)
?48 {
?49 ???? for ?(? int ?i = ? 0 ;?i < ? 9 ;?i ++ ?)
?50 ???? {
?51 ???????? for ?(? int ?j = ? 0 ;?j < ? 9 ;?j ++ ?)
?52 ???????? if ?(?result[i][j] == ? 0 ?)
?53 ???????? {
?54 ????????????xx = ?i;
?55 ????????????yy = ?j;
?56 ????????????
?57 ???????????? return ? true ;
?58 ????????}

?59 ????}

?60 ????
?61 ???? return ? false ;????
?62 }

?63
?64
?65 void ?Try(? int ?xx,? int ?yy?)
?66 {
?67 ???? for ?(? int ?i = ? 1 ;?i <= ? 9 ;? ++ i?)
?68 ???? {
?69 ???????? if ?(? ! x[xx][i]? && ? ! y[yy][i]? && ? ! z[?GetID(xx,yy)?][i]?)
?70 ???????? {
?71 ???????????? int ?a,?b;
?72 ????????????
?73 ????????????result[xx][yy] = ?i;
?74 ????????????
?75 ????????????x[xx][i] = ? true ;
?76 ????????????y[yy][i] = ? true ;
?77 ????????????z[?GetID(xx,yy)?][i] = ? true ;
?78 ????????????
?79 ???????????? if ?(? ! GetXY(?a,?b?)?)
?80 ???????????? {
?81 ????????????????Print();
?82 ????????????????num = ? 1 ;
?83 ???????????????? return ;
?84 ????????????}

?85 ????????????
?86 ????????????Try(?a,?b?);?
?87 ????????????result[xx][yy] = ? 0 ;
?88 ????????????????
?89 ????????????x[xx][i] = ? false ;
?90 ????????????y[yy][i] = ? false ;
?91 ????????????z[?GetID(xx,yy)?][i] = ? false ;
?92 ????????}

?93 ????}

?94 }

?95
?96
?97
?98 int ?main()
?99 {
100 ???? int ?n;
101 ????scanf( " %d " , & n);
102 ???? char ?aaa[ 10 ];
103 ????
104 ???? for ?(? int ?mm = ? 0 ;?mm < ?n;?mm ++ ?)
105 ???? {
106 ???????? char ?graph[ 9 ][ 10 ];
107 ????????num = ? 0 ;
108 ????????
109 ????????memset(?x,? false ,? sizeof (x)?);
110 ????????memset(?y,? false ,? sizeof (y)?);
111 ????????memset(?z,? false ,? sizeof (z)?);
112 ????????memset(?result,? 0 ,? sizeof (?result?)?);
113 ????????
114 ???????? for ?(? int ?i = ? 0 ;?i < ? 9 ;? ++ i?)
115 ?????????????scanf( " %s " ,?graph[i]?);
116 ?????????????
117 ???????? for ?(? int ?i = ? 0 ;?i < ? 9 ;? ++ i?)
118 ???????? {
119 ???????????? for ?(? int ?j = ? 0 ;?j < ? 9 ;? ++ j?)
120 ???????????? if ?(?graph[i][j] != ? ' ? ' ?)
121 ???????????? {
122 ???????????????? int ?t = ?graph[i][j] - ? ' 0 ' ;
123 ????????????????result[i][j] = ?t;
124 ????????????????
125 ????????????????x[i][t] = ? true ;
126 ????????????????y[j][t] = ? true ;
127 ????????????????z[?GetID(?i,?j?)?][t] = ? true ;
128 ????????????}

129 ????????}

130 ????????
131 ???????? int ?x,?y;
132 ????????
133 ????????GetXY(?x,?y?);
134 ????????Try(?x,?y?);
135 ?????????????
136 ???????? if ?(?mm < ?n - ? 1 ?)
137 ???????? {
138 ?????????????printf( " \n---\n " );
139 ?????????????scanf( " %s " ,aaa);
140 ????????}
????
141 ????????
142 ???????? if ?(?num == ? 0 ?)
143 ?????????????printf( " impossible " );
144 ????}

145 ????
146 ???? return ? 0 ;
147 }

148 ????????????????
149
posted on 2008-08-19 08:14 Darren 閱讀(341) 評論(0)  編輯 收藏 引用 所屬分類: 搜索
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲欧美日本另类| 亚洲第一主播视频| 欧美成人午夜剧场免费观看| 欧美性事免费在线观看| 欧美国产亚洲精品久久久8v| 国产日韩欧美高清| 亚洲一区二区在线观看视频| 99精品免费| 蜜臀va亚洲va欧美va天堂| 久久另类ts人妖一区二区| 国产精品第13页| 亚洲剧情一区二区| 亚洲伦理一区| 欧美—级在线免费片| 欧美激情二区三区| 亚洲国产精品va在线观看黑人 | 亚洲精品一区二区三区99| 伊人成人在线| 久久久久国产一区二区三区四区| 久久精品亚洲一区| 国产精品手机在线| 中文精品视频一区二区在线观看| 亚洲最新中文字幕| 欧美日韩蜜桃| 亚洲手机在线| 校园春色国产精品| 国产在线观看精品一区二区三区| 午夜精品剧场| 久久深夜福利免费观看| 永久久久久久| 欧美激情网友自拍| 99re6这里只有精品| 亚洲综合导航| 国产一区二区三区精品欧美日韩一区二区三区 | 久久久美女艺术照精彩视频福利播放 | 亚洲午夜精品久久| 欧美视频导航| 亚洲欧美日韩综合aⅴ视频| 久久精品国内一区二区三区| 影音先锋日韩资源| 欧美高清视频www夜色资源网| 亚洲精品裸体| 性xx色xx综合久久久xx| 影音先锋在线一区| 欧美激情国产精品| 亚洲香蕉在线观看| 久久亚洲国产精品日日av夜夜| 亚洲国产免费看| 欧美日韩另类丝袜其他| 亚洲影院免费观看| 毛片精品免费在线观看| 亚洲日本va午夜在线影院| 国产精品极品美女粉嫩高清在线| 久久国产精彩视频| 亚洲激情国产| 久久国产精品久久久久久电车| 亚洲国产乱码最新视频| 欧美日韩在线视频首页| 久久久久久久综合日本| 这里只有精品电影| 免费视频一区| 午夜在线视频观看日韩17c| 亚洲黄一区二区三区| 国产精品美女久久| 欧美大片网址| 久久大香伊蕉在人线观看热2| 亚洲精品老司机| 久久久五月天| 亚洲午夜av在线| 亚洲国产精品久久人人爱蜜臀| 国产精品美女久久久免费| 免费不卡在线观看av| 香蕉久久a毛片| 日韩视频在线一区| 欧美黄色片免费观看| 欧美一激情一区二区三区| 亚洲精品系列| 激情欧美一区| 国产精品中文在线| 欧美色视频日本高清在线观看| 麻豆精品视频在线观看视频| 欧美在线视频导航| 99精品欧美一区二区蜜桃免费| 亚洲第一精品夜夜躁人人爽| 久久久久成人精品| 午夜伦欧美伦电影理论片| 99www免费人成精品| 亚洲激情成人网| 1024欧美极品| 国产资源精品在线观看| 国产欧美一区二区三区在线看蜜臀 | 午夜精品亚洲一区二区三区嫩草| 亚洲人体偷拍| 亚洲精品日产精品乱码不卡| 欧美aaaaaaaa牛牛影院| 麻豆成人综合网| 久久久久一区二区三区| 久久精品99国产精品| 性色av一区二区三区在线观看| 国产精品99久久久久久有的能看| 日韩视频不卡| 99精品热6080yy久久| 亚洲美女视频网| 亚洲美女淫视频| 99热在这里有精品免费| 亚洲最黄网站| 一区二区三区www| 一区二区三区成人| 亚洲自拍电影| 欧美一区二区三区电影在线观看| 亚洲欧美日韩中文播放| 性色av一区二区三区红粉影视| 亚洲欧美自拍偷拍| 久久av一区二区| 久久久久久国产精品mv| 另类综合日韩欧美亚洲| 欧美激情精品久久久久久| 亚洲黄网站黄| 一区二区欧美激情| 亚洲欧美日韩综合国产aⅴ| 欧美主播一区二区三区美女 久久精品人| 欧美一区二区视频97| 久久久夜夜夜| 欧美大片免费观看| 国产精品久久久久aaaa| 国产区欧美区日韩区| 狠狠色综合一区二区| 亚洲精品1区| 亚洲婷婷在线| 久久久亚洲欧洲日产国码αv| 欧美成人免费大片| 日韩视频在线观看| 性做久久久久久久久| 蜜桃久久av一区| 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ入口 | 国产精品亚洲欧美| 在线观看日韩欧美| 亚洲视频一区二区| 久久在线免费观看| 亚洲精品美女久久7777777| 亚洲综合成人在线| 免费在线欧美黄色| 国产乱子伦一区二区三区国色天香 | 日韩午夜激情| 欧美在线视频一区二区三区| 欧美激情一区二区三级高清视频| 国产精品国产三级国产专播品爱网| 国产在线精品自拍| 夜久久久久久| 另类亚洲自拍| 亚洲午夜视频| 欧美成熟视频| 狠狠综合久久| 亚洲欧美日韩另类| 亚洲电影第1页| 久久er精品视频| 国产精品高潮粉嫩av| 亚洲精品国产视频| 久久人体大胆视频| 亚洲一区二区三区乱码aⅴ蜜桃女| 噜噜噜在线观看免费视频日韩| 国产伦精品一区二区三区免费| 亚洲免费观看| 欧美激情亚洲激情| 久久成人18免费观看| 国产精品久久久一区麻豆最新章节 | 欧美激情网站在线观看| 欧美一级专区| 国产精品视频不卡| 亚洲午夜在线观看| 亚洲国产日韩综合一区| 久久久欧美精品sm网站| 国产伦一区二区三区色一情| 亚洲深爱激情| 日韩系列在线| 欧美激情综合| 亚洲精品视频二区| 亚洲国产精品美女| 美女999久久久精品视频| 黄色成人在线网址| 久久综合久久综合久久| 欧美一区二区在线| 国产日韩在线播放| 性欧美18~19sex高清播放| 一本一本a久久| 欧美性大战久久久久| 99视频精品| 亚洲精品在线视频| 欧美三日本三级少妇三2023| 亚洲视频一区二区在线观看| 亚洲美洲欧洲综合国产一区| 欧美伦理91i| 亚洲视频第一页| 亚洲天堂网在线观看| 国产精品免费观看在线| 欧美一区国产一区| 欧美一区二区精美| 激情欧美日韩一区| 亚洲电影观看| 欧美日本中文字幕|