样例超时,数据竟过了一个点,所以求调
查看原帖
样例超时,数据竟过了一个点,所以求调
681558
Weizhuo_Zhao楼主2024/6/6 22:36
#include <bits/stdc++.h>
using namespace std;

short a[55][2] = {};
int T, ans = 0;
int x1, y1_, x2, y2;
void dfs(int x, int y, int k, int c);

int main() {
	cin >> x1 >> y1_ >> x2 >> y2;
	cin >> T;
	char c;
	for (int i = 1; i <= T; i++) {
		cin >> c;
		if (c == 'E')
			a[i][0] = 1;
		else if (c == 'S')
			a[i][1] = -1;
		else if (c == 'W')
			a[i][0] = -1;
		else if (c == 'N')
			a[i][1] = 1;
	}
	dfs(x1, y1_, 1, 0);
	cout << ans;
}

void dfs(int x, int y, int k, int c) {
	if (x == x2 && y == y2) {
		ans = min(ans, c);
		return;
	}
	if (k > T)
		return;
	dfs(x + a[k][0], y + a[k][1], k + 1, c + 1);
	dfs(x, y, k++, c);
}
2024/6/6 22:36
加载中...