文章

21

粉丝

0

获赞

19

访问

3.6k

头像
单词方阵 题解:
P5317 四川大学2025年机试题
发布于2026年3月27日 15:56
阅读数 191

#include <iostream>
#include <vector>
#include <string>
using namespace std;

int N;
vector<string> matrix;
int n;
string word;

bool flag = 0;
bool ans = 0; // 表示是否至少存在一个
// 方向矩阵
int direction[2][8] = {{0,  0, 1, 1,  1, -1, -1, -1},
					   {1, -1, 0, 1, -1,  0,  1, -1}};
// 搜索
void dfs(int i, int j, int l, int dir) {
	if (l == n) {
		flag = 1;
		return;
	}
	if (i < 0 || i >= N || j < 0 || j >= N) // 边界
		return;
	if (matrix[i][j] != word[l]) 
		return;
	
	dfs(i + direction[0][dir], j + direction[1][dir], l + 1, dir);
};

int main() {
	cin >> N;

	for (int i = 0; i < N; i++) {
		string tmp, s;
		for (int j = 0; j < N; j++) {
			cin >> tmp;
			s = s + tmp;
		}
		matrix.push_back(s);
		s.clear();
	}

	cin >> word;
	n = word.size();
//---------------------------------------------------
	if (n > N) cout << "Not Found";
	
	// 搜索
	for (int i = 0; i < N; i++) {
		for ...
登录查看完整内容


登录后发布评论

暂无评论,来抢沙发