为了账号安全,请及时绑定邮箱和手机立即绑定

c++DFS算法问题?

c++DFS算法问题?

C++
MMTTMM 2019-02-05 19:05:36
c++DFS算法问题
查看完整描述

2 回答

?
长风秋雁

TA贡献1757条经验 获得超7个赞

这个题是比较基本的DFS问题,建议你自己多看多试一下,自己做出来意义更大一点。我想提供给你另外一种思路,时间复杂度更低,对于每个坐标(X,Y)可以从(x-1,y)和(x,y-1)到达,所以到这一点的可能数就是到达两个先驱点的方案数量的和,把黑洞设置成0就行了

查看完整回答
反对 回复 2019-03-03
?
阿晨1998

TA贡献2037条经验 获得超6个赞

1234567891011121314151617181920212223242526272829303132#include "iostream"#include <string.h>using namespace std;int c = 0;int n, m, num;int arr[20][20];void search(int x, int y){    if (x > n || y < 1)        return;    if(arr[x][y] == 1)          //碰到黑洞        return;    if (x == n && y == 1)        c++;    search(x + 1, y);    search(x, y - 1);    return;}int main(){    int x, y;    memset(arr, 0,sizeof arr);    cin >> n >> m >> num;    for (int i = 0; i < num; i++)    {        cin >> x >> y;        arr[x][y] = 1;          //1代表黑洞    }    search(1, m);    cout << c << endl;    return 0;}



查看完整回答
反对 回复 2019-03-03
  • 2 回答
  • 0 关注
  • 821 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信