问题标题: 酷町堂:2991 超时,wa

0
0
已解决
刘乐宸
刘乐宸
新手天翼
新手天翼
#include<algorithm>
#include<iostream>
#include<string>
#include<cstdio>
#include<cmath>
//#include <windows.h>
using namespace std;
int n,m; 
int dir[4][2] = {{2,1},{1,2},{-1,2},{-2,1}};
int vis[10][10];

struct P{
	long long a, b;
}p[100];
bool in_bound(long long x, long long y) {
	if(x>=0 && x<=n && y>=0 && y<=m)	return true;
	return false;
}
int cnt = 0;
void dfs(long long x, long long y, long long t) {
	p[t].a = x;
	p[t].b = y;
	if(x==n && y==m) {
		cnt ++; 
		return ;
	} 
	for(long long i=0; i<n; i++) {
		long long nx = x + dir[i][0], ny = y + dir[i][1];
		if(vis[nx][ny]==0 && in_bound(nx, ny)) {
			vis[nx][ny] = 1;
			dfs(nx, ny, t+1);
			vis[nx][ny] = 0; 
		}
	} 
} 
int main() {
	cin>>n>>m;
	dfs(0, 0, 1);
	cout << cnt;
	return 0;
}

十分。

刘乐宸在2020-04-17 13:14:31追加了内容

豆豆在等你哦~


0
已采纳
陈喆鹏
陈喆鹏
资深光能
资深光能

 vis[10][10];

你看看数据范为

0
沈峻宇
沈峻宇
资深天翼
资深天翼

注意数组大小!vis[10][10];

望采纳

0
0
董宇昊
董宇昊
初级启示者
初级启示者

数组定义小了,不过你的代码是20分。

0
我要回答