本文主要是介绍纵横字谜的答案(Crossword Answers, ACM/ICPC World Finals 1994,UVa232),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
习题3-6 纵横字谜的答案(Crossword Answers, ACM/ICPC World Finals 1994,UVa232)
输入一个r行c列(1≤r,c≤10)的网格,黑格用“*”表示,每个白格都填有一个字母。如果一个白格的左边相邻位置或者上边相邻位置没有白格(可能是黑格,也可能出了网格边界),则称这个白格是一个起始格。
首先把所有起始格按照从上到下、从左到右的顺序编号为1, 2, 3,…,如图3-7所示。接下来要找出所有横向单词(Across)。这些单词必须从一个起始格开始,向右延伸到一个黑格的左边或者整个网格的最右列。最后找出所有竖向单词(Down)。这些单词必须从一个起始格开始,向下延伸到一个黑格的上边或者整个网格的最下行。
#include <stdio.h>
#include <string.h>
#define maxn 15
char s[maxn][maxn];
char map[maxn][maxn];
int main(){int r, c;memset(s,'*',sizeof(s)
这篇关于纵横字谜的答案(Crossword Answers, ACM/ICPC World Finals 1994,UVa232)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!