【NOI2005】 智慧珠游戏

题目描述
智慧珠游戏
【问题描述】
智慧珠游戏拼盘由一个三角形盘件和 12 个形态各异的零件组成。拼盘的盘
件如图 1 所示:
图1
12 个零件按珠子数分 3 大类:
第 1 大类,有三个珠子,只有一种形状。
符号为 A,形状为
第 2 大类,有 4 个珠子,有 3 种形状。
符号为 B,形状为
符号为 C,形状为
符号为 D,形状为
第 3 大类,有 5 个珠子,有 8 种形状。
符号为 E,形状为
符号为 F,形状为
符号为 G,形状为
符号为 H,形状为
符号为 I,形状为
符号为 J,形状为
符号为 K,形状为
符号为 L,形状为
图2
图 2 示出了一种拼盘方案。为便于描述可将图 2 抽象为图 3,就可以用一个
数据为字符的二维数组来表示了。
B
B K
B K K
B J K K
J J J D D
G J G D D C
G G G C C C I
E E E H H I I A
E L H H H I A A F
E L L L L I F F F F
图3
对于由珠子构成的零件,可以放到盘件的任一位置,条件是能有地方放,且
尺寸合适,所有的零件都允许旋转(0o、90o、180o、270o)和翻转(水平、竖直)。
现给出一个盘件的初始布局,求一种可行的智慧珠摆放方案,使所有的零件
都能放进盘件中。
【输入格式】
文件中包含初始的盘件描述,一共有 10 行,第 i 行有 i 个字符。如果第 i 行
的第 j 个字符是字母”A”至”L”中的一个,则表示第 i 行第 j 列的格子上已经放了
零件,零件的编号为对应的字母。如果第 i 行的第 j 个字符是”.”,则表示第 i 行
第 j 列的格子上没有放零件。
输入保证预放的零件已摆放在盘件中。
【输出格式】
如果能找到解,向输出文件打印 10 行,为放完全部 12 个零件后的布局。其
中,第 i 行应包含 i 个字符,第 i 行的第 j 个字符表示第 i 行第 j 列的格子上放的
是哪个零件。
如果无解,输出单独的一个字符串‘No solution’(不要引号,请注意大小写)。
所有的数据保证最多只有一组解。
【输入样例】
.
..
...
....
.....
.....C
...CCC.
EEEHH...
E.HHH....
E.........
【输出样例】
B
BK
BKK
BJKK
JJJDD
GJGDDC
GGGCCCI
EEEHHIIA
ELHHHIAAF
ELLLLIFFFF

 
 

题解

 

My code
  1 (*
  2     *Problem:    NOI2005 智慧珠游戏
  3     *Author :    Chen Yang
  4     *Time   :    2012.6.3 5:40 pm
  5     *State  :    solved
  6     *Memo   :    搜索、预处理
  7 *)
  8 program zhzyx;
  9 var
 10   i,j:longint;
 11   map,text:array[0..15,0..15] of char;
 12   get:array['A'..'Z'] of boolean;
 13   have:array[0..15,0..15] of boolean;
 14   F:array['A'..'Z',0..8,0..5,0..2] of longint;
 15   S,P:array['A'..'Z'] of longint;
 16 //======================
 17 procedure init;
 18 begin
 19   S['A']:=4; P['A']:=2;
 20   F['A',1,1,1]:=0; F['A',1,1,2]:=1;
 21   F['A',1,2,1]:=1; F['A',1,2,2]:=0;
 22 
 23   F['A',2,1,1]:=0; F['A',2,1,2]:=1;
 24   F['A',2,2,1]:=1; F['A',2,2,2]:=1;
 25 
 26   F['A',3,1,1]:=1; F['A',3,1,2]:=0;
 27   F['A',3,2,1]:=1; F['A',3,2,2]:=1;
 28 
 29   F['A',4,1,1]:=1; F['A',4,1,2]:=0;
 30   F['A',4,2,1]:=1; F['A',4,2,2]:=-1;
 31 
 32   S['B']:=2; P['B']:=3;
 33   F['B',1,1,1]:=0; F['B',1,1,2]:=1;
 34   F['B',1,2,1]:=0; F['B',1,2,2]:=2;
 35   F['B',1,3,1]:=0; F['B',1,3,2]:=3;
 36 
 37   F['B',2,1,1]:=1; F['B',2,1,2]:=0;
 38   F['B',2,2,1]:=2; F['B',2,2,2]:=0;
 39   F['B',2,3,1]:=3; F['B',2,3,2]:=0;
 40 
 41   S['C']:=8; P['C']:=3;
 42   F['C',1,1,1]:=1; F['C',1,1,2]:=0;
 43   F['C',1,2,1]:=2; F['C',1,2,2]:=0;
 44   F['C',1,3,1]:=2; F['C',1,3,2]:=-1;
 45 
 46   F['C',2,1,1]:=0; F['C',2,1,2]:=1;
 47   F['C',2,2,1]:=1; F['C',2,2,2]:=1;
 48   F['C',2,3,1]:=2; F['C',2,3,2]:=1;
 49 
 50   F['C',3,1,1]:=1; F['C',3,1,2]:=0;
 51   F['C',3,2,1]:=2; F['C',3,2,2]:=0;
 52   F['C',3,3,1]:=2; F['C',3,3,2]:=1;
 53 
 54   F['C',4,1,1]:=0; F['C',4,1,2]:=1;
 55   F['C',4,2,1]:=1; F['C',4,2,2]:=0;
 56   F['C',4,3,1]:=2; F['C',4,3,2]:=0;
 57 
 58   F['C',5,1,1]:=1; F['C',5,1,2]:=0;
 59   F['C',5,2,1]:=1; F['C',5,2,2]:=-1;
 60   F['C',5,3,1]:=1; F['C',5,3,2]:=-2;
 61 
 62   F['C',6,1,1]:=1; F['C',6,1,2]:=0;
 63   F['C',6,2,1]:=1; F['C',6,2,2]:=1;
 64   F['C',6,3,1]:=1; F['C',6,3,2]:=2;
 65 
 66   F['C',7,1,1]:=0; F['C',7,1,2]:=1;
 67   F['C',7,2,1]:=0; F['C',7,2,2]:=2;
 68   F['C',7,3,1]:=1; F['C',7,3,2]:=2;
 69 
 70   F['C',8,1,1]:=1; F['C',8,1,2]:=0;
 71   F['C',8,2,1]:=0; F['C',8,2,2]:=1;
 72   F['C',8,3,1]:=0; F['C',8,3,2]:=2;
 73 
 74   S['D']:=1; P['D']:=3;
 75   F['D',1,1,1]:=1; F['D',1,1,2]:=0;
 76   F['D',1,2,1]:=0; F['D',1,2,2]:=1;
 77   F['D',1,3,1]:=1; F['D',1,3,2]:=1;
 78 
 79   S['E']:=4; P['E']:=4;
 80   F['E',1,1,1]:=1; F['E',1,1,2]:=0;
 81   F['E',1,2,1]:=2; F['E',1,2,2]:=0;
 82   F['E',1,3,1]:=2; F['E',1,3,2]:=1;
 83   F['E',1,4,1]:=2; F['E',1,4,2]:=2;
 84 
 85   F['E',2,1,1]:=1; F['E',2,1,2]:=0;
 86   F['E',2,2,1]:=2; F['E',2,2,2]:=0;
 87   F['E',2,3,1]:=2; F['E',2,3,2]:=-1;
 88   F['E',2,4,1]:=2; F['E',2,4,2]:=-2;
 89 
 90   F['E',3,1,1]:=0; F['E',3,1,2]:=1;
 91   F['E',3,2,1]:=0; F['E',3,2,2]:=2;
 92   F['E',3,3,1]:=1; F['E',3,3,2]:=0;
 93   F['E',3,4,1]:=2; F['E',3,4,2]:=0;
 94 
 95   F['E',4,1,1]:=0; F['E',4,1,2]:=1;
 96   F['E',4,2,1]:=0; F['E',4,2,2]:=2;
 97   F['E',4,3,1]:=1; F['E',4,3,2]:=2;
 98   F['E',4,4,1]:=2; F['E',4,4,2]:=2;
 99 
100   S['F']:=8; P['F']:=4;
101   F['F',1,1,1]:=0; F['F',1,1,2]:=1;
102   F['F',1,2,1]:=1; F['F',1,2,2]:=1;
103   F['F',1,3,1]:=0; F['F',1,3,2]:=2;
104   F['F',1,4,1]:=0; F['F',1,4,2]:=3;
105 
106   F['F',2,1,1]:=1; F['F',2,1,2]:=0;
107   F['F',2,2,1]:=1; F['F',2,2,2]:=-1;
108   F['F',2,3,1]:=1; F['F',2,3,2]:=1;
109   F['F',2,4,1]:=1; F['F',2,4,2]:=2;
110 
111   F['F',3,1,1]:=1; F['F',3,1,2]:=0;
112   F['F',3,2,1]:=2; F['F',3,2,2]:=0;
113   F['F',3,3,1]:=1; F['F',3,3,2]:=-1;
114   F['F',3,4,1]:=3; F['F',3,4,2]:=0;
115 
116   F['F',4,1,1]:=1; F['F',4,1,2]:=0;
117   F['F',4,2,1]:=2; F['F',4,2,2]:=0;
118   F['F',4,3,1]:=1; F['F',4,3,2]:=1;
119   F['F',4,4,1]:=3; F['F',4,4,2]:=0;
120 
121   F['F',5,1,1]:=1; F['F',5,1,2]:=0;
122   F['F',5,2,1]:=2; F['F',5,2,2]:=0;
123   F['F',5,3,1]:=3; F['F',5,3,2]:=0;
124   F['F',5,4,1]:=2; F['F',5,4,2]:=1;
125 
126   F['F',6,1,1]:=1; F['F',6,1,2]:=0;
127   F['F',6,2,1]:=2; F['F',6,2,2]:=0;
128   F['F',6,3,1]:=3; F['F',6,3,2]:=0;
129   F['F',6,4,1]:=2; F['F',6,4,2]:=-1;
130 
131   F['F',7,1,1]:=1; F['F',7,1,2]:=1;
132   F['F',7,2,1]:=1; F['F',7,2,2]:=0;
133   F['F',7,3,1]:=1; F['F',7,3,2]:=-1;
134   F['F',7,4,1]:=1; F['F',7,4,2]:=-2;
135 
136   F['F',8,1,1]:=0; F['F',8,1,2]:=1;
137   F['F',8,2,1]:=0; F['F',8,2,2]:=2;
138   F['F',8,3,1]:=0; F['F',8,3,2]:=3;
139   F['F',8,4,1]:=1; F['F',8,4,2]:=2;
140 
141   S['G']:=4; P['G']:=4;
142   F['G',1,1,1]:=1; F['G',1,1,2]:=0;
143   F['G',1,2,1]:=0; F['G',1,2,2]:=1;
144   F['G',1,3,1]:=0; F['G',1,3,2]:=2;
145   F['G',1,4,1]:=1; F['G',1,4,2]:=2;
146 
147   F['G',2,1,1]:=1; F['G',2,1,2]:=0;
148   F['G',2,2,1]:=1; F['G',2,2,2]:=1;
149   F['G',2,3,1]:=1; F['G',2,3,2]:=2;
150   F['G',2,4,1]:=0; F['G',2,4,2]:=2;
151 
152   F['G',3,1,1]:=0; F['G',3,1,2]:=1;
153   F['G',3,2,1]:=1; F['G',3,2,2]:=1;
154   F['G',3,3,1]:=2; F['G',3,3,2]:=1;
155   F['G',3,4,1]:=2; F['G',3,4,2]:=0;
156 
157   F['G',4,1,1]:=0; F['G',4,1,2]:=1;
158   F['G',4,2,1]:=1; F['G',4,2,2]:=0;
159   F['G',4,3,1]:=2; F['G',4,3,2]:=0;
160   F['G',4,4,1]:=2; F['G',4,4,2]:=1;
161 
162   S['H']:=8; P['H']:=4;
163   F['H',1,1,1]:=0; F['H',1,1,2]:=1;
164   F['H',1,2,1]:=0; F['H',1,2,2]:=2;
165   F['H',1,3,1]:=1; F['H',1,3,2]:=0;
166   F['H',1,4,1]:=1; F['H',1,4,2]:=1;
167 
168   F['H',2,1,1]:=0; F['H',2,1,2]:=1;
169   F['H',2,2,1]:=0; F['H',2,2,2]:=2;
170   F['H',2,3,1]:=1; F['H',2,3,2]:=1;
171   F['H',2,4,1]:=1; F['H',2,4,2]:=2;
172 
173   F['H',3,1,1]:=1; F['H',3,1,2]:=0;
174   F['H',3,2,1]:=1; F['H',3,2,2]:=-1;
175   F['H',3,3,1]:=2; F['H',3,3,2]:=0;
176   F['H',3,4,1]:=2; F['H',3,4,2]:=-1;
177 
178   F['H',4,1,1]:=1; F['H',4,1,2]:=0;
179   F['H',4,2,1]:=1; F['H',4,2,2]:=1;
180   F['H',4,3,1]:=2; F['H',4,3,2]:=0;
181   F['H',4,4,1]:=2; F['H',4,4,2]:=1;
182 
183   F['H',5,1,1]:=0; F['H',5,1,2]:=1;
184   F['H',5,2,1]:=1; F['H',5,2,2]:=0;
185   F['H',5,3,1]:=1; F['H',5,3,2]:=1;
186   F['H',5,4,1]:=1; F['H',5,4,2]:=2;
187 
188   F['H',6,1,1]:=0; F['H',6,1,2]:=1;
189   F['H',6,2,1]:=1; F['H',6,2,2]:=0;
190   F['H',6,3,1]:=1; F['H',6,3,2]:=1;
191   F['H',6,4,1]:=2; F['H',6,4,2]:=1;
192 
193   F['H',7,1,1]:=0; F['H',7,1,2]:=1;
194   F['H',7,2,1]:=1; F['H',7,2,2]:=0;
195   F['H',7,3,1]:=1; F['H',7,3,2]:=1;
196   F['H',7,4,1]:=1; F['H',7,4,2]:=-1;
197 
198   F['H',8,1,1]:=0; F['H',8,1,2]:=1;
199   F['H',8,2,1]:=1; F['H',8,2,2]:=0;
200   F['H',8,3,1]:=1; F['H',8,3,2]:=1;
201   F['H',8,4,1]:=2; F['H',8,4,2]:=0;
202 
203   S['I']:=8; P['I']:=4;
204   F['I',1,1,1]:=0; F['I',1,1,2]:=1;
205   F['I',1,2,1]:=0; F['I',1,2,2]:=2;
206   F['I',1,3,1]:=1; F['I',1,3,2]:=2;
207   F['I',1,4,1]:=1; F['I',1,4,2]:=3;
208 
209   F['I',2,1,1]:=0; F['I',2,1,2]:=1;
210   F['I',2,2,1]:=1; F['I',2,2,2]:=0;
211   F['I',2,3,1]:=1; F['I',2,3,2]:=-1;
212   F['I',2,4,1]:=1; F['I',2,4,2]:=-2;
213 
214   F['I',3,1,1]:=0; F['I',3,1,2]:=1;
215   F['I',3,2,1]:=0; F['I',3,2,2]:=2;
216   F['I',3,3,1]:=1; F['I',3,3,2]:=0;
217   F['I',3,4,1]:=1; F['I',3,4,2]:=-1;
218 
219   F['I',4,1,1]:=0; F['I',4,1,2]:=1;
220   F['I',4,2,1]:=1; F['I',4,2,2]:=1;
221   F['I',4,3,1]:=1; F['I',4,3,2]:=2;
222   F['I',4,4,1]:=1; F['I',4,4,2]:=3;
223 
224   F['I',5,1,1]:=1; F['I',5,1,2]:=0;
225   F['I',5,2,1]:=1; F['I',5,2,2]:=1;
226   F['I',5,3,1]:=2; F['I',5,3,2]:=1;
227   F['I',5,4,1]:=3; F['I',5,4,2]:=1;
228 
229   F['I',6,1,1]:=1; F['I',6,1,2]:=0;
230   F['I',6,2,1]:=1; F['I',6,2,2]:=-1;
231   F['I',6,3,1]:=2; F['I',6,3,2]:=-1;
232   F['I',6,4,1]:=3; F['I',6,4,2]:=-1;
233 
234   F['I',7,1,1]:=1; F['I',7,1,2]:=0;
235   F['I',7,2,1]:=2; F['I',7,2,2]:=0;
236   F['I',7,3,1]:=2; F['I',7,3,2]:=1;
237   F['I',7,4,1]:=3; F['I',7,4,2]:=1;
238 
239   F['I',8,1,1]:=1; F['I',8,1,2]:=0;
240   F['I',8,2,1]:=2; F['I',8,2,2]:=0;
241   F['I',8,3,1]:=2; F['I',8,3,2]:=-1;
242   F['I',8,4,1]:=3; F['I',8,4,2]:=-1;
243 
244   S['J']:=1; P['J']:=4;
245   F['J',1,1,1]:=1; F['J',1,1,2]:=0;
246   F['J',1,2,1]:=1; F['J',1,2,2]:=1;
247   F['J',1,3,1]:=2; F['J',1,3,2]:=0;
248   F['J',1,4,1]:=1; F['J',1,4,2]:=-1;
249 
250   S['K']:=4; P['K']:=4;
251   F['K',1,1,1]:=1; F['K',1,1,2]:=0;
252   F['K',1,2,1]:=1; F['K',1,2,2]:=1;
253   F['K',1,3,1]:=2; F['K',1,3,2]:=1;
254   F['K',1,4,1]:=2; F['K',1,4,2]:=2;
255 
256   F['K',2,1,1]:=1; F['K',2,1,2]:=0;
257   F['K',2,2,1]:=1; F['K',2,2,2]:=-1;
258   F['K',2,3,1]:=2; F['K',2,3,2]:=-1;
259   F['K',2,4,1]:=2; F['K',2,4,2]:=-2;
260 
261   F['K',3,1,1]:=0; F['K',3,1,2]:=1;
262   F['K',3,2,1]:=1; F['K',3,2,2]:=1;
263   F['K',3,3,1]:=1; F['K',3,3,2]:=2;
264   F['K',3,4,1]:=2; F['K',3,4,2]:=2;
265 
266   F['K',4,1,1]:=0; F['K',4,1,2]:=1;
267   F['K',4,2,1]:=1; F['K',4,2,2]:=0;
268   F['K',4,3,1]:=1; F['K',4,3,2]:=-1;
269   F['K',4,4,1]:=2; F['K',4,4,2]:=-1;
270 
271   S['L']:=8; P['L']:=4;
272   F['L',1,1,1]:=0; F['L',1,1,2]:=1;
273   F['L',1,2,1]:=0; F['L',1,2,2]:=2;
274   F['L',1,3,1]:=0; F['L',1,3,2]:=3;
275   F['L',1,4,1]:=1; F['L',1,4,2]:=0;
276 
277   F['L',2,1,1]:=1; F['L',2,1,2]:=0;
278   F['L',2,2,1]:=1; F['L',2,2,2]:=1;
279   F['L',2,3,1]:=1; F['L',2,3,2]:=2;
280   F['L',2,4,1]:=1; F['L',2,4,2]:=3;
281 
282   F['L',3,1,1]:=0; F['L',3,1,2]:=1;
283   F['L',3,2,1]:=0; F['L',3,2,2]:=2;
284   F['L',3,3,1]:=0; F['L',3,3,2]:=3;
285   F['L',3,4,1]:=1; F['L',3,4,2]:=3;
286 
287   F['L',4,1,1]:=1; F['L',4,1,2]:=0;
288   F['L',4,2,1]:=1; F['L',4,2,2]:=-1;
289   F['L',4,3,1]:=1; F['L',4,3,2]:=-2;
290   F['L',4,4,1]:=1; F['L',4,4,2]:=-3;
291 
292   F['L',5,1,1]:=1; F['L',5,1,2]:=0;
293   F['L',5,2,1]:=2; F['L',5,2,2]:=0;
294   F['L',5,3,1]:=3; F['L',5,3,2]:=0;
295   F['L',5,4,1]:=3; F['L',5,4,2]:=1;
296 
297   F['L',6,1,1]:=0; F['L',6,1,2]:=1;
298   F['L',6,2,1]:=1; F['L',6,2,2]:=0;
299   F['L',6,3,1]:=2; F['L',6,3,2]:=0;
300   F['L',6,4,1]:=3; F['L',6,4,2]:=0;
301 
302   F['L',7,1,1]:=1; F['L',7,1,2]:=0;
303   F['L',7,2,1]:=2; F['L',7,2,2]:=0;
304   F['L',7,3,1]:=3; F['L',7,3,2]:=0;
305   F['L',7,4,1]:=3; F['L',7,4,2]:=-1;
306 
307   F['L',8,1,1]:=0; F['L',8,1,2]:=1;
308   F['L',8,2,1]:=1; F['L',8,2,2]:=1;
309   F['L',8,3,1]:=2; F['L',8,3,2]:=1;
310   F['L',8,4,1]:=3; F['L',8,4,2]:=1;
311 end;
312 //======================
313 procedure print;
314 var
315   i,j:longint;
316 begin
317   for i:=1 to 10 do
318   begin
319     for j:=1 to i do write(map[i,j]);
320     writeln;
321   end;
322 end;
323 //======================
324 function check(x,y,k:longint; fp:char):boolean;
325 var
326   i,fx,fy:longint;
327 begin
328   for i:=1 to p[fp] do
329   begin
330     fx:=x+f[fp,k,i,1]; fy:=y+f[fp,k,i,2];
331     if (fx<1)or(fx>10)or(fy<1)or(fy>fx)or(map[fx,fy]<>'.') then exit(false);
332   end;
333   exit(true);
334 end;
335 //======================
336 procedure change(x,y,k:longint; fp,q:char);
337 var
338   i,fx,fy:longint;
339 begin
340   for i:=1 to p[fp] do
341   begin
342     fx:=x+f[fp,k,i,1]; fy:=y+f[fp,k,i,2];
343     map[fx,fy]:=q;
344   end;
345 end;
346 //======================
347 procedure find(x,y:longint);
348 var
349   fx,fy,i:longint;
350   fp:char;
351 begin
352   if x=11 then
353   begin
354     print;
355     close(input); close(output);
356     halt;
357   end;
358   fx:=x; fy:=y+1;
359   if fy>fx then
360   begin
361     inc(fx); fy:=1;
362   end;
363   if map[x,y]<>'.' then find(fx,fy) else
364   for fp:='A' to 'L' do
365   if not get[fp] then
366   begin
367     get[fp]:=true; map[x,y]:=fp;
368     for i:=1 to s[fp] do
369     if check(x,y,i,fp) then
370     begin
371       change(x,y,i,fp,fp);
372       find(fx,fy);
373       change(x,y,i,fp,'.');
374     end;
375     map[x,y]:='.'; get[fp]:=false;
376   end;
377 end;
378 //======================
379 procedure check;
380 var
381   i,j,k,x,y,fx,fy:longint;
382   fp:char;
383 begin
384   for fp:='A' to 'L' do
385   begin
386     writeln(fp);
387     for i:=1 to s[fp] do
388     begin
389       for j:=1 to 10 do
390       for k:=1 to 10 do text[j,k]:='.';
391       x:=5; y:=5; text[x,y]:='S';
392       for j:=1 to p[fp] do
393       begin
394         fx:=x+f[fp,i,j,1]; fy:=y+f[fp,i,j,2];
395         text[fx,fy]:='*';
396       end;
397       for j:=1 to 10 do
398       begin
399         for k:=1 to 10 do write(text[j,k]);
400         writeln;
401       end;
402       writeln;
403     end;
404   end;
405 end;
406 //======================
407 procedure work(x,y,s:longint);
408 var
409   next:boolean;
410 begin
411   have[x,y]:=true;
412   next:=false;
413   if (map[x+1,y]='.')and not have[x+1,y] then
414   begin work(x+1,y,s+1); next:=true; end;
415   if (map[x-1,y]='.')and not have[x-1,y] then
416   begin work(x-1,y,s+1); next:=true; end;
417   if (map[x,y+1]='.')and not have[x,y+1] then
418   begin work(x,y+1,s+1); next:=true; end;
419   if (map[x,y-1]='.')and not have[x,y-1] then
420   begin work(x,y-1,s+1); next:=true; end;
421   if not next and (s<3) then
422   begin
423     writeln('No solution');
424     close(input); close(output);
425     halt;
426   end;
427 end;
428 //======================
429 begin
430   assign(input,'zhzyx.in'); reset(input);
431   assign(output,'zhzyx.out'); rewrite(output);
432   for i:=1 to 10 do
433   begin
434     for j:=1 to i do
435     begin
436       read(map[i,j]);
437       if map[i,j] in ['A'..'Z'] then get[map[i,j]]:=true;
438     end;
439     readln;
440   end;
441   init;
442   //check;
443   for i:=1 to 10 do
444   begin
445     for j:=1 to i do
446     if not have[i,j] and (map[i,j]='.') then work(i,j,1);
447   end;
448   find(1,1);
449   writeln('No solution');
450   close(input); close(output);
451 end.

 

posted @ 2012-06-03 20:49  datam  阅读(1635)  评论(0编辑  收藏  举报