网站页面
当前课程
成员
General
主题 1
主题 2
主题 4
主题 5
主题 6
主题 7
主题 8
主题 9
主题 10
主题 11
主题 12
主题 13
主题 14
主题 15
主题 16
主题 17
主题 18
主题 19
主题 20
画海岛地图
成绩 | 0 | 开启时间 | 2013年01月16日 星期三 15:10 |
折扣 | 0.8 | 折扣时间 | 2013年01月16日 星期三 15:10 |
允许迟交 | 是 | 关闭时间 | 2013年01月16日 星期三 15:10 |
输入文件 | island.in | 输出文件 | island.out |
【问题描述】
用 N*N(1<=N<=8) 的格点阵代表海,其中 * 代表岛。给你一组编码信息,让你重构一张地图。这组信息是按垂直方向、水平方向岛的分布情况摘取的。下例中,每行右边的数字按顺序表示该行中“岛组”的大小,如第一行数字为“ 1 2 ”,表示该行第一“岛组”由一个岛组成,第二“岛组”由两个岛组成,而第四列下面的“ 2 3 ”则表示本列由两个“岛组”组成,第一个“岛组”由两个岛组成,第二个“岛组”由三个岛组成。
现要求你编程解决下列问题:
任务
读取一个信息块,根据信息块重构地图(若有多个解,逐个构成地图)。
【输入格式】
第一行:N N表示格点阵大小(N<=8)
第2—N+1 行岛组信息
第N+2—2N+1 列岛组信息
***所有的島組信息都是以0結尾。
【输出格式】
第一行:岛组编号
第2—N+1行:*号表示的地图
若有多个解时,按上面格式依次输出(输出顺序按地图中最上,最左边的*号位置(i,j)由小到大排序,i是第一关键字,j是第二关键字)
若无解时,输出'no'.
【输入输出样例】
输入:
island.in
8
1 1 1 1 0
1 1 1 1 0
1 1 1 1 0
1 1 1 1 0
1 1 1 1 0
1 1 1 1 0
1 1 1 1 0
1 1 1 1 0
1 1 1 1 0
1 1 1 1 0
1 1 1 1 0
1 1 1 1 0
1 1 1 1 0
1 1 1 1 0
1 1 1 1 0
1 1 1 1 0
输出:
island.out
1
* * * *
* * * *
* * * *
* * * *
* * * *
* * * *
* * * *
* * * *
2
* * * *
* * * *
* * * *
* * * *
* * * *
* * * *
* * * *
* * * *