Noi-05智慧珠游戏

搜索题,我是用程序来算的常数表,采用坐标位移法描述,然后就是裸搜了,我的搜索顺序是左上,右下,左上,右下。。。交替搜索,这样可以使节点枚举的限制较大,是个不错的优化手段,然后就是卡时,定到1000000就可以了,贴源码(居然25Kb):

const
path:array[1..55,1..2] of longint=((1,1),(10,10),(2,1),(10,9),(2,2),(9,9),(3,1),(10,8),(3,2),(9,8),(3,3),(8,8),(4,1),(10,7),(4,2),(9,7),(4,3),(8,7),(4,4),(7,7),(5,1),(10,6),(5,2),(9,6),(5,3),(8,6),(5,4),(7,6),(5,5),(6,6),(6,1),(10,5),(6,2),(9,5),(6,3),(8,5),(6,4),(7,5),(6,5),(7,1),(10,4),(7,2),(9,4),(7,3),(8,4),(7,4),(8,1),(10,3),(8,2),(9,3),(8,3),(9,1),(10,2),(9,2),(10,1));
size:array['A'..'L'] of longint=( 3, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5);
coun:array['A'..'L'] of longint=(12, 8,32, 4,20,40,20,40,40, 5,20,40);
map:array['A'..'L',1..40,1..5,1..2] of longint=
(
(
(( 0, 0),(-1, 0),( 0, 1),( 0, 0),( 0, 0)),
(( 1, 0),( 0, 0),( 1, 1),( 0, 0),( 0, 0)),
(( 0,-1),(-1,-1),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0,-1),(-1, 0),( 0, 0),( 0, 0)),
(( 0, 1),( 0, 0),(-1, 1),( 0, 0),( 0, 0)),
(( 1, 0),( 1,-1),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 1, 0),( 0,-1),( 0, 0),( 0, 0)),
((-1, 0),( 0, 0),(-1,-1),( 0, 0),( 0, 0)),
(( 0, 1),( 1, 1),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 1),( 1, 0),( 0, 0),( 0, 0)),
(( 0,-1),( 0, 0),( 1,-1),( 0, 0),( 0, 0)),
((-1, 0),(-1, 1),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0))
),
(
(( 0, 0),(-1, 0),(-2, 0),(-3, 0),( 0, 0)),
(( 1, 0),( 0, 0),(-1, 0),(-2, 0),( 0, 0)),
(( 2, 0),( 1, 0),( 0, 0),(-1, 0),( 0, 0)),
(( 3, 0),( 2, 0),( 1, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0,-1),( 0,-2),( 0,-3),( 0, 0)),
(( 0, 1),( 0, 0),( 0,-1),( 0,-2),( 0, 0)),
(( 0, 2),( 0, 1),( 0, 0),( 0,-1),( 0, 0)),
(( 0, 3),( 0, 2),( 0, 1),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0))
),
(
(( 0, 0),(-1, 0),(-2, 0),( 0, 1),( 0, 0)),
(( 1, 0),( 0, 0),(-1, 0),( 1, 1),( 0, 0)),
(( 2, 0),( 1, 0),( 0, 0),( 2, 1),( 0, 0)),
(( 0,-1),(-1,-1),(-2,-1),( 0, 0),( 0, 0)),
(( 0, 0),( 0,-1),( 0,-2),(-1, 0),( 0, 0)),
(( 0, 1),( 0, 0),( 0,-1),(-1, 1),( 0, 0)),
(( 0, 2),( 0, 1),( 0, 0),(-1, 2),( 0, 0)),
(( 1, 0),( 1,-1),( 1,-2),( 0, 0),( 0, 0)),
(( 0, 0),( 1, 0),( 2, 0),( 0,-1),( 0, 0)),
((-1, 0),( 0, 0),( 1, 0),(-1,-1),( 0, 0)),
((-2, 0),(-1, 0),( 0, 0),(-2,-1),( 0, 0)),
(( 0, 1),( 1, 1),( 2, 1),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 1),( 0, 2),( 1, 0),( 0, 0)),
(( 0,-1),( 0, 0),( 0, 1),( 1,-1),( 0, 0)),
(( 0,-2),( 0,-1),( 0, 0),( 1,-2),( 0, 0)),
((-1, 0),(-1, 1),(-1, 2),( 0, 0),( 0, 0)),
(( 0, 0),(-1, 0),(-2, 0),( 0,-1),( 0, 0)),
(( 1, 0),( 0, 0),(-1, 0),( 1,-1),( 0, 0)),
(( 2, 0),( 1, 0),( 0, 0),( 2,-1),( 0, 0)),
(( 0, 1),(-1, 1),(-2, 1),( 0, 0),( 0, 0)),
(( 0, 0),( 0,-1),( 0,-2),( 1, 0),( 0, 0)),
(( 0, 1),( 0, 0),( 0,-1),( 1, 1),( 0, 0)),
(( 0, 2),( 0, 1),( 0, 0),( 1, 2),( 0, 0)),
((-1, 0),(-1,-1),(-1,-2),( 0, 0),( 0, 0)),
(( 0, 0),( 1, 0),( 2, 0),( 0, 1),( 0, 0)),
((-1, 0),( 0, 0),( 1, 0),(-1, 1),( 0, 0)),
((-2, 0),(-1, 0),( 0, 0),(-2, 1),( 0, 0)),
(( 0,-1),( 1,-1),( 2,-1),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 1),( 0, 2),(-1, 0),( 0, 0)),
(( 0,-1),( 0, 0),( 0, 1),(-1,-1),( 0, 0)),
(( 0,-2),( 0,-1),( 0, 0),(-1,-2),( 0, 0)),
(( 1, 0),( 1, 1),( 1, 2),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0))
),
(
(( 0, 0),(-1, 0),( 0, 1),(-1, 1),( 0, 0)),
(( 1, 0),( 0, 0),( 1, 1),( 0, 1),( 0, 0)),
(( 0,-1),(-1,-1),( 0, 0),(-1, 0),( 0, 0)),
(( 1,-1),( 0,-1),( 1, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0))
),
(
(( 0, 0),( 0, 1),( 0, 2),(-1, 2),(-2, 2)),
(( 0,-1),( 0, 0),( 0, 1),(-1, 1),(-2, 1)),
(( 0,-2),( 0,-1),( 0, 0),(-1, 0),(-2, 0)),
(( 1,-2),( 1,-1),( 1, 0),( 0, 0),(-1, 0)),
(( 2,-2),( 2,-1),( 2, 0),( 1, 0),( 0, 0)),
(( 0, 0),(-1, 0),(-2, 0),(-2,-1),(-2,-2)),
(( 1, 0),( 0, 0),(-1, 0),(-1,-1),(-1,-2)),
(( 2, 0),( 1, 0),( 0, 0),( 0,-1),( 0,-2)),
(( 2, 1),( 1, 1),( 0, 1),( 0, 0),( 0,-1)),
(( 2, 2),( 1, 2),( 0, 2),( 0, 1),( 0, 0)),
(( 0, 0),( 0,-1),( 0,-2),( 1,-2),( 2,-2)),
(( 0, 1),( 0, 0),( 0,-1),( 1,-1),( 2,-1)),
(( 0, 2),( 0, 1),( 0, 0),( 1, 0),( 2, 0)),
((-1, 2),(-1, 1),(-1, 0),( 0, 0),( 1, 0)),
((-2, 2),(-2, 1),(-2, 0),(-1, 0),( 0, 0)),
(( 0, 0),( 1, 0),( 2, 0),( 2, 1),( 2, 2)),
((-1, 0),( 0, 0),( 1, 0),( 1, 1),( 1, 2)),
((-2, 0),(-1, 0),( 0, 0),( 0, 1),( 0, 2)),
((-2,-1),(-1,-1),( 0,-1),( 0, 0),( 0, 1)),
((-2,-2),(-1,-2),( 0,-2),( 0,-1),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0))
),
(
(( 0, 0),(-1, 0),(-2, 0),(-3, 0),(-1, 1)),
(( 1, 0),( 0, 0),(-1, 0),(-2, 0),( 0, 1)),
(( 2, 0),( 1, 0),( 0, 0),(-1, 0),( 1, 1)),
(( 3, 0),( 2, 0),( 1, 0),( 0, 0),( 2, 1)),
(( 1,-1),( 0,-1),(-1,-1),(-2,-1),( 0, 0)),
(( 0, 0),( 0,-1),( 0,-2),( 0,-3),(-1,-1)),
(( 0, 1),( 0, 0),( 0,-1),( 0,-2),(-1, 0)),
(( 0, 2),( 0, 1),( 0, 0),( 0,-1),(-1, 1)),
(( 0, 3),( 0, 2),( 0, 1),( 0, 0),(-1, 2)),
(( 1, 1),( 1, 0),( 1,-1),( 1,-2),( 0, 0)),
(( 0, 0),( 1, 0),( 2, 0),( 3, 0),( 1,-1)),
((-1, 0),( 0, 0),( 1, 0),( 2, 0),( 0,-1)),
((-2, 0),(-1, 0),( 0, 0),( 1, 0),(-1,-1)),
((-3, 0),(-2, 0),(-1, 0),( 0, 0),(-2,-1)),
((-1, 1),( 0, 1),( 1, 1),( 2, 1),( 0, 0)),
(( 0, 0),( 0, 1),( 0, 2),( 0, 3),( 1, 1)),
(( 0,-1),( 0, 0),( 0, 1),( 0, 2),( 1, 0)),
(( 0,-2),( 0,-1),( 0, 0),( 0, 1),( 1,-1)),
(( 0,-3),( 0,-2),( 0,-1),( 0, 0),( 1,-2)),
((-1,-1),(-1, 0),(-1, 1),(-1, 2),( 0, 0)),
(( 0, 0),(-1, 0),(-2, 0),(-3, 0),(-1,-1)),
(( 1, 0),( 0, 0),(-1, 0),(-2, 0),( 0,-1)),
(( 2, 0),( 1, 0),( 0, 0),(-1, 0),( 1,-1)),
(( 3, 0),( 2, 0),( 1, 0),( 0, 0),( 2,-1)),
(( 1, 1),( 0, 1),(-1, 1),(-2, 1),( 0, 0)),
(( 0, 0),( 0,-1),( 0,-2),( 0,-3),( 1,-1)),
(( 0, 1),( 0, 0),( 0,-1),( 0,-2),( 1, 0)),
(( 0, 2),( 0, 1),( 0, 0),( 0,-1),( 1, 1)),
(( 0, 3),( 0, 2),( 0, 1),( 0, 0),( 1, 2)),
((-1, 1),(-1, 0),(-1,-1),(-1,-2),( 0, 0)),
(( 0, 0),( 1, 0),( 2, 0),( 3, 0),( 1, 1)),
((-1, 0),( 0, 0),( 1, 0),( 2, 0),( 0, 1)),
((-2, 0),(-1, 0),( 0, 0),( 1, 0),(-1, 1)),
((-3, 0),(-2, 0),(-1, 0),( 0, 0),(-2, 1)),
((-1,-1),( 0,-1),( 1,-1),( 2,-1),( 0, 0)),
(( 0, 0),( 0, 1),( 0, 2),( 0, 3),(-1, 1)),
(( 0,-1),( 0, 0),( 0, 1),( 0, 2),(-1, 0)),
(( 0,-2),( 0,-1),( 0, 0),( 0, 1),(-1,-1)),
(( 0,-3),( 0,-2),( 0,-1),( 0, 0),(-1,-2)),
(( 1,-1),( 1, 0),( 1, 1),( 1, 2),( 0, 0))
),
(
(( 0, 0),(-1, 0),(-2, 0),( 0, 1),(-2, 1)),
(( 1, 0),( 0, 0),(-1, 0),( 1, 1),(-1, 1)),
(( 2, 0),( 1, 0),( 0, 0),( 2, 1),( 0, 1)),
(( 0,-1),(-1,-1),(-2,-1),( 0, 0),(-2, 0)),
(( 2,-1),( 1,-1),( 0,-1),( 2, 0),( 0, 0)),
(( 0, 0),( 0,-1),( 0,-2),(-1, 0),(-1,-2)),
(( 0, 1),( 0, 0),( 0,-1),(-1, 1),(-1,-1)),
(( 0, 2),( 0, 1),( 0, 0),(-1, 2),(-1, 0)),
(( 1, 0),( 1,-1),( 1,-2),( 0, 0),( 0,-2)),
(( 1, 2),( 1, 1),( 1, 0),( 0, 2),( 0, 0)),
(( 0, 0),( 1, 0),( 2, 0),( 0,-1),( 2,-1)),
((-1, 0),( 0, 0),( 1, 0),(-1,-1),( 1,-1)),
((-2, 0),(-1, 0),( 0, 0),(-2,-1),( 0,-1)),
(( 0, 1),( 1, 1),( 2, 1),( 0, 0),( 2, 0)),
((-2, 1),(-1, 1),( 0, 1),(-2, 0),( 0, 0)),
(( 0, 0),( 0, 1),( 0, 2),( 1, 0),( 1, 2)),
(( 0,-1),( 0, 0),( 0, 1),( 1,-1),( 1, 1)),
(( 0,-2),( 0,-1),( 0, 0),( 1,-2),( 1, 0)),
((-1, 0),(-1, 1),(-1, 2),( 0, 0),( 0, 2)),
((-1,-2),(-1,-1),(-1, 0),( 0,-2),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0))
),
(
(( 0, 0),(-1, 0),(-2, 0),( 0, 1),(-1, 1)),
(( 1, 0),( 0, 0),(-1, 0),( 1, 1),( 0, 1)),
(( 2, 0),( 1, 0),( 0, 0),( 2, 1),( 1, 1)),
(( 0,-1),(-1,-1),(-2,-1),( 0, 0),(-1, 0)),
(( 1,-1),( 0,-1),(-1,-1),( 1, 0),( 0, 0)),
(( 0, 0),( 0,-1),( 0,-2),(-1, 0),(-1,-1)),
(( 0, 1),( 0, 0),( 0,-1),(-1, 1),(-1, 0)),
(( 0, 2),( 0, 1),( 0, 0),(-1, 2),(-1, 1)),
(( 1, 0),( 1,-1),( 1,-2),( 0, 0),( 0,-1)),
(( 1, 1),( 1, 0),( 1,-1),( 0, 1),( 0, 0)),
(( 0, 0),( 1, 0),( 2, 0),( 0,-1),( 1,-1)),
((-1, 0),( 0, 0),( 1, 0),(-1,-1),( 0,-1)),
((-2, 0),(-1, 0),( 0, 0),(-2,-1),(-1,-1)),
(( 0, 1),( 1, 1),( 2, 1),( 0, 0),( 1, 0)),
((-1, 1),( 0, 1),( 1, 1),(-1, 0),( 0, 0)),
(( 0, 0),( 0, 1),( 0, 2),( 1, 0),( 1, 1)),
(( 0,-1),( 0, 0),( 0, 1),( 1,-1),( 1, 0)),
(( 0,-2),( 0,-1),( 0, 0),( 1,-2),( 1,-1)),
((-1, 0),(-1, 1),(-1, 2),( 0, 0),( 0, 1)),
((-1,-1),(-1, 0),(-1, 1),( 0,-1),( 0, 0)),
(( 0, 0),(-1, 0),(-2, 0),( 0,-1),(-1,-1)),
(( 1, 0),( 0, 0),(-1, 0),( 1,-1),( 0,-1)),
(( 2, 0),( 1, 0),( 0, 0),( 2,-1),( 1,-1)),
(( 0, 1),(-1, 1),(-2, 1),( 0, 0),(-1, 0)),
(( 1, 1),( 0, 1),(-1, 1),( 1, 0),( 0, 0)),
(( 0, 0),( 0,-1),( 0,-2),( 1, 0),( 1,-1)),
(( 0, 1),( 0, 0),( 0,-1),( 1, 1),( 1, 0)),
(( 0, 2),( 0, 1),( 0, 0),( 1, 2),( 1, 1)),
((-1, 0),(-1,-1),(-1,-2),( 0, 0),( 0,-1)),
((-1, 1),(-1, 0),(-1,-1),( 0, 1),( 0, 0)),
(( 0, 0),( 1, 0),( 2, 0),( 0, 1),( 1, 1)),
((-1, 0),( 0, 0),( 1, 0),(-1, 1),( 0, 1)),
((-2, 0),(-1, 0),( 0, 0),(-2, 1),(-1, 1)),
(( 0,-1),( 1,-1),( 2,-1),( 0, 0),( 1, 0)),
((-1,-1),( 0,-1),( 1,-1),(-1, 0),( 0, 0)),
(( 0, 0),( 0, 1),( 0, 2),(-1, 0),(-1, 1)),
(( 0,-1),( 0, 0),( 0, 1),(-1,-1),(-1, 0)),
(( 0,-2),( 0,-1),( 0, 0),(-1,-2),(-1,-1)),
(( 1, 0),( 1, 1),( 1, 2),( 0, 0),( 0, 1)),
(( 1,-1),( 1, 0),( 1, 1),( 0,-1),( 0, 0))
),
(
(( 0, 0),(-1, 0),(-2, 0),(-2, 1),(-3, 1)),
(( 1, 0),( 0, 0),(-1, 0),(-1, 1),(-2, 1)),
(( 2, 0),( 1, 0),( 0, 0),( 0, 1),(-1, 1)),
(( 2,-1),( 1,-1),( 0,-1),( 0, 0),(-1, 0)),
(( 3,-1),( 2,-1),( 1,-1),( 1, 0),( 0, 0)),
(( 0, 0),( 0,-1),( 0,-2),(-1,-2),(-1,-3)),
(( 0, 1),( 0, 0),( 0,-1),(-1,-1),(-1,-2)),
(( 0, 2),( 0, 1),( 0, 0),(-1, 0),(-1,-1)),
(( 1, 2),( 1, 1),( 1, 0),( 0, 0),( 0,-1)),
(( 1, 3),( 1, 2),( 1, 1),( 0, 1),( 0, 0)),
(( 0, 0),( 1, 0),( 2, 0),( 2,-1),( 3,-1)),
((-1, 0),( 0, 0),( 1, 0),( 1,-1),( 2,-1)),
((-2, 0),(-1, 0),( 0, 0),( 0,-1),( 1,-1)),
((-2, 1),(-1, 1),( 0, 1),( 0, 0),( 1, 0)),
((-3, 1),(-2, 1),(-1, 1),(-1, 0),( 0, 0)),
(( 0, 0),( 0, 1),( 0, 2),( 1, 2),( 1, 3)),
(( 0,-1),( 0, 0),( 0, 1),( 1, 1),( 1, 2)),
(( 0,-2),( 0,-1),( 0, 0),( 1, 0),( 1, 1)),
((-1,-2),(-1,-1),(-1, 0),( 0, 0),( 0, 1)),
((-1,-3),(-1,-2),(-1,-1),( 0,-1),( 0, 0)),
(( 0, 0),(-1, 0),(-2, 0),(-2,-1),(-3,-1)),
(( 1, 0),( 0, 0),(-1, 0),(-1,-1),(-2,-1)),
(( 2, 0),( 1, 0),( 0, 0),( 0,-1),(-1,-1)),
(( 2, 1),( 1, 1),( 0, 1),( 0, 0),(-1, 0)),
(( 3, 1),( 2, 1),( 1, 1),( 1, 0),( 0, 0)),
(( 0, 0),( 0,-1),( 0,-2),( 1,-2),( 1,-3)),
(( 0, 1),( 0, 0),( 0,-1),( 1,-1),( 1,-2)),
(( 0, 2),( 0, 1),( 0, 0),( 1, 0),( 1,-1)),
((-1, 2),(-1, 1),(-1, 0),( 0, 0),( 0,-1)),
((-1, 3),(-1, 2),(-1, 1),( 0, 1),( 0, 0)),
(( 0, 0),( 1, 0),( 2, 0),( 2, 1),( 3, 1)),
((-1, 0),( 0, 0),( 1, 0),( 1, 1),( 2, 1)),
((-2, 0),(-1, 0),( 0, 0),( 0, 1),( 1, 1)),
((-2,-1),(-1,-1),( 0,-1),( 0, 0),( 1, 0)),
((-3,-1),(-2,-1),(-1,-1),(-1, 0),( 0, 0)),
(( 0, 0),( 0, 1),( 0, 2),(-1, 2),(-1, 3)),
(( 0,-1),( 0, 0),( 0, 1),(-1, 1),(-1, 2)),
(( 0,-2),( 0,-1),( 0, 0),(-1, 0),(-1, 1)),
(( 1,-2),( 1,-1),( 1, 0),( 0, 0),( 0, 1)),
(( 1,-3),( 1,-2),( 1,-1),( 0,-1),( 0, 0))
),
(
(( 0, 0),( 1, 1),( 0, 1),(-1, 1),( 0, 2)),
((-1,-1),( 0, 0),(-1, 0),(-2, 0),(-1, 1)),
(( 0,-1),( 1, 0),( 0, 0),(-1, 0),( 0, 1)),
(( 1,-1),( 2, 0),( 1, 0),( 0, 0),( 1, 1)),
(( 0,-2),( 1,-1),( 0,-1),(-1,-1),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0))
),
(
(( 0, 0),( 0, 1),(-1, 1),(-1, 2),(-2, 2)),
(( 0,-1),( 0, 0),(-1, 0),(-1, 1),(-2, 1)),
(( 1,-1),( 1, 0),( 0, 0),( 0, 1),(-1, 1)),
(( 1,-2),( 1,-1),( 0,-1),( 0, 0),(-1, 0)),
(( 2,-2),( 2,-1),( 1,-1),( 1, 0),( 0, 0)),
(( 0, 0),(-1, 0),(-1,-1),(-2,-1),(-2,-2)),
(( 1, 0),( 0, 0),( 0,-1),(-1,-1),(-1,-2)),
(( 1, 1),( 0, 1),( 0, 0),(-1, 0),(-1,-1)),
(( 2, 1),( 1, 1),( 1, 0),( 0, 0),( 0,-1)),
(( 2, 2),( 1, 2),( 1, 1),( 0, 1),( 0, 0)),
(( 0, 0),( 0,-1),( 1,-1),( 1,-2),( 2,-2)),
(( 0, 1),( 0, 0),( 1, 0),( 1,-1),( 2,-1)),
((-1, 1),(-1, 0),( 0, 0),( 0,-1),( 1,-1)),
((-1, 2),(-1, 1),( 0, 1),( 0, 0),( 1, 0)),
((-2, 2),(-2, 1),(-1, 1),(-1, 0),( 0, 0)),
(( 0, 0),( 1, 0),( 1, 1),( 2, 1),( 2, 2)),
((-1, 0),( 0, 0),( 0, 1),( 1, 1),( 1, 2)),
((-1,-1),( 0,-1),( 0, 0),( 1, 0),( 1, 1)),
((-2,-1),(-1,-1),(-1, 0),( 0, 0),( 0, 1)),
((-2,-2),(-1,-2),(-1,-1),( 0,-1),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0))
),
(
(( 0, 0),(-1, 0),(-2, 0),(-3, 0),( 0, 1)),
(( 1, 0),( 0, 0),(-1, 0),(-2, 0),( 1, 1)),
(( 2, 0),( 1, 0),( 0, 0),(-1, 0),( 2, 1)),
(( 3, 0),( 2, 0),( 1, 0),( 0, 0),( 3, 1)),
(( 0,-1),(-1,-1),(-2,-1),(-3,-1),( 0, 0)),
(( 0, 0),( 0,-1),( 0,-2),( 0,-3),(-1, 0)),
(( 0, 1),( 0, 0),( 0,-1),( 0,-2),(-1, 1)),
(( 0, 2),( 0, 1),( 0, 0),( 0,-1),(-1, 2)),
(( 0, 3),( 0, 2),( 0, 1),( 0, 0),(-1, 3)),
(( 1, 0),( 1,-1),( 1,-2),( 1,-3),( 0, 0)),
(( 0, 0),( 1, 0),( 2, 0),( 3, 0),( 0,-1)),
((-1, 0),( 0, 0),( 1, 0),( 2, 0),(-1,-1)),
((-2, 0),(-1, 0),( 0, 0),( 1, 0),(-2,-1)),
((-3, 0),(-2, 0),(-1, 0),( 0, 0),(-3,-1)),
(( 0, 1),( 1, 1),( 2, 1),( 3, 1),( 0, 0)),
(( 0, 0),( 0, 1),( 0, 2),( 0, 3),( 1, 0)),
(( 0,-1),( 0, 0),( 0, 1),( 0, 2),( 1,-1)),
(( 0,-2),( 0,-1),( 0, 0),( 0, 1),( 1,-2)),
(( 0,-3),( 0,-2),( 0,-1),( 0, 0),( 1,-3)),
((-1, 0),(-1, 1),(-1, 2),(-1, 3),( 0, 0)),
(( 0, 0),(-1, 0),(-2, 0),(-3, 0),( 0,-1)),
(( 1, 0),( 0, 0),(-1, 0),(-2, 0),( 1,-1)),
(( 2, 0),( 1, 0),( 0, 0),(-1, 0),( 2,-1)),
(( 3, 0),( 2, 0),( 1, 0),( 0, 0),( 3,-1)),
(( 0, 1),(-1, 1),(-2, 1),(-3, 1),( 0, 0)),
(( 0, 0),( 0,-1),( 0,-2),( 0,-3),( 1, 0)),
(( 0, 1),( 0, 0),( 0,-1),( 0,-2),( 1, 1)),
(( 0, 2),( 0, 1),( 0, 0),( 0,-1),( 1, 2)),
(( 0, 3),( 0, 2),( 0, 1),( 0, 0),( 1, 3)),
((-1, 0),(-1,-1),(-1,-2),(-1,-3),( 0, 0)),
(( 0, 0),( 1, 0),( 2, 0),( 3, 0),( 0, 1)),
((-1, 0),( 0, 0),( 1, 0),( 2, 0),(-1, 1)),
((-2, 0),(-1, 0),( 0, 0),( 1, 0),(-2, 1)),
((-3, 0),(-2, 0),(-1, 0),( 0, 0),(-3, 1)),
(( 0,-1),( 1,-1),( 2,-1),( 3,-1),( 0, 0)),
(( 0, 0),( 0, 1),( 0, 2),( 0, 3),(-1, 0)),
(( 0,-1),( 0, 0),( 0, 1),( 0, 2),(-1,-1)),
(( 0,-2),( 0,-1),( 0, 0),( 0, 1),(-1,-2)),
(( 0,-3),( 0,-2),( 0,-1),( 0, 0),(-1,-3)),
(( 1, 0),( 1, 1),( 1, 2),( 1, 3),( 0, 0))
)
);
maxtime=1000000;

var
   g:array[1..10,1..10] of char;
   use:array['A'..'L'] of boolean;
   time:longint;
procedure put(x0,y0:longint;ch:char;k:longint);
var
   i:longint;
begin
     for i:=1 to size[ch] do g[x0+map[ch,k,i,1],y0+map[ch,k,i,2]]:=ch;
end;
procedure reput(x0,y0:longint;ch:char;k:longint);
var
   i:longint;
begin
     for i:=1 to size[ch] do g[x0+map[ch,k,i,1],y0+map[ch,k,i,2]]:='.';
end;
function canput(x0,y0:longint;ch:char;k:longint):boolean;
var
   i,tx,ty:longint;
begin
     for i:=1 to size[ch] do begin
         tx:=x0+map[ch,k,i,1];
         ty:=y0+map[ch,k,i,2];
         if (tx<1)or(tx>10)or(ty<1)or(ty>tx) then exit(false);
         if g[tx,ty]<>'.' then exit(false);
     end;
     exit(true);
end;
procedure calc;
var
   i,j:longint;
begin
     for i:=1 to 10 do begin
         for j:=1 to i do write(g[i,j]);
         writeln;
     end;
     close(input);
     close(output);
     halt;
end;
procedure dfs(i:longint);
var
   ch:char;
   p:longint;
begin
     inc(time);
     if time>maxtime then begin
        writeln('No'+#32+'solution');
        close(input);
        close(output);
        halt;
     end;
     //writeln(i);
     if i>55 then calc;
     if g[path[i,1],path[i,2]]<>'.' then dfs(i+1)
     else begin
               for ch:='A' to 'L' do
                   if not use[ch] then
                   for p:=1 to coun[ch] do
                       if canput(path[i,1],path[i,2],ch,p) then begin
                          use[ch]:=true;
                          put(path[i,1],path[i,2],ch,p);
                             dfs(i+1);
                          reput(path[i,1],path[i,2],ch,p);
                          use[ch]:=false;
                       end
     end;
end;
procedure main;
var
   i,j:longint;
begin
     assign(input,'zhzyx.in');
     assign(output,'zhzyx.out');
     reset(input);
     rewrite(output);
     fillchar(use,sizeof(use),false);
     for i:=1 to 10 do begin
         for j:=1 to i do begin
             read(g[i,j]);
             if g[i,j]<>'.' then use[g[i,j]]:=true;
         end;
         readln;
     end;
     time:=0;
     dfs(1);
     writeln('No'+#32+'solution');
     close(input);
     close(output);
end;
{
procedure debug;
var
   screen,screen0:array[-10..10,-10..10] of char;
   ch:char;
   i,j,p,q:longint;
begin
     assign(output,'debug.txt');
     rewrite(output);
     for p:=-10 to 10 do
         for q:=-10 to 10 do begin
             screen0[p,q]:='.';
             if (p=0)or(q=0) then screen0[p,q]:='*';
         end;
     for ch:='A' to 'L' do
     for i:=1 to coun[ch] do begin
         screen:=screen0;
         for j:=1 to size[ch] do
             screen[map[ch,i,j,1],map[ch,i,j,2]]:=ch;
         for p:=-10 to 10 do begin
             for q:=-10 to 10 do
                 write(screen[p,q]);
             writeln;
         end;
         writeln;
     end;
     close(input);
     close(output);
end;
}

begin
     main;
     //debug;
end.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值