UVA 232 - Crossword Answers
2017-09-06 09:24
411 查看
题目大意:给出拼图,其中黑块没字母,第一行第一列,以及黑块的右边下边都可以进行编号。横着读单词,竖着读单词,输出。
解题思路:一个二维数组存编号,横着循环,编号与读入单词对应存map。竖着时,改变一下变量。注意格式。
ac代码:
解题思路:一个二维数组存编号,横着循环,编号与读入单词对应存map。竖着时,改变一下变量。注意格式。
ac代码:
#include <iostream> #include <cstring> #include <map> using namespace std; map <int, string> ma; map <int, string> ::iterator it; int n, m, a[15][15], cnt=0, t; char puz[15][15], word[30]; void add_num() { memset(a, 0, sizeof(a)); for (int i=0,k=1; i<n; i++) for (int j=0; j<m; j++) if (puz[i][j] != '*'){ if (!i || !j) a[i][j] = k++; else if (puz[i-1][j] == '*' || puz[i][j-1] == '*') a[i][j] = k++; } } void prin() { for (it=ma.begin(); it!=ma.end(); it++){ printf("%3d.", it->first); cout << it->second << endl; } ma.clear(); } int main() { while (scanf("%d", &n)!=EOF && n){ if (cnt) printf("\n"); scanf("%d", &m); for (int i=0; i<n; i++) scanf("%s", puz[i]); add_num(); for (int i=0; i<n; i++) for (int j=0,k=0; j<m; j++){ if (a[i][j]) t = a[i][j]; while (puz[i][j]!='*' && j<m){ word[k++] = puz[i][j]; word[k] = '\0'; j++; } if (k) k = 0, ma[t] = word; } printf("puzzle #%d:\nAcross\n", ++cnt); prin(); for (int i=0; i<m; i++) for (int j=0,k=0; j<n; j++){ if (a[j][i]) t = a[j][i]; while (puz[j][i]!='*' && j<n){ word[k++] = puz[j][i]; word[k] = '\0'; j++; } if (k) k = 0, ma[t] = word; } printf("Down\n"); prin(); } return 0; }
相关文章推荐
- 3-6 uva 232 Crossword Answers
- UVa 232 Crossword Answers
- uva 232 - Crossword Answers
- 习题3-6 UVa232 Crossword Answers
- 《算法竞赛入门经典2ndEdition 》习题3-6 纵横字谜的答案(Crossword Answers, Uva232)
- uva---232--- Crossword Answers
- UVA - 232 Crossword Answers
- 算法竞赛入门经典第三章3-6 Crossword Answers UVA - 232
- UVa232 Crossword Answers
- 习题3-6 纵横字谜的答案(Crossword Answers) UVa 232
- 习题3-6 纵横字谜的答案(Crossword Answers, ACM/ICPC World Finals 1994, UVa232)
- UVA - 232 Crossword Answers
- UVa 232 - Crossword Answers
- 算法竞赛入门经典-习题3-6 纵横字谜的答案(Crossword Answers, ACM/ICPC World Finals 1994,UVa232)
- UVA232 UVALive5171 POJ1888 Crossword Answers
- UVA 232 Crossword Answers
- 3.6 Crossword Answers UVa232
- Uva - 232 - Crossword Answers
- UVa-232 - Crossword Answers
- Uva - 232 - Crossword Answers