请问(各位神犇)这个算动态规划吗?
查看原帖
请问(各位神犇)这个算动态规划吗?
533488
Immortal_Xiao楼主2021/11/15 21:28

请问(各位神犇)这个算动态规划吗?


代码:

#include <bits/stdc++.h>
using namespace std;

int a[30][30] = {1};
bool b[30][30] = {true};

int main()
{
    int nx, ny, hx, hy;
    cin >> nx >> ny >> hx >> hy;
    a[hx][hy] =
    a[hx + 2][hy + 1] =
    a[hx + 1][hy + 2] =
    a[hx - 1][hy + 2] =
    a[hx - 2][hy + 1] =
    a[hx - 2][hy - 1] =
    a[hx - 1][hy - 2] =
    a[hx + 1][hy - 2] =
    a[hx + 2][hy - 1] =
    0;
    b[hx][hy] =
    b[hx + 2][hy + 1] =
    b[hx + 1][hy + 2] =
    b[hx - 1][hy + 2] =
    b[hx - 2][hy + 1] =
    b[hx - 2][hy - 1] =
    b[hx - 1][hy - 2] =
    b[hx + 1][hy - 2] =
    b[hx + 2][hy - 1] =
    false;
    for (int i = 2; i <= nx; i++)
    {
        for (int j = 2; j <= ny; j++)
        {
        	if (b[i][j])
        	{
            	a[i][j] = a[i - 1][j] + a[i][j - 1];
            }
        }
    }
    cout << a[nx][ny] << endl;
    return 0;
}

怀疑问题所在的修改后代码(全部移动):
#include <bits/stdc++.h>
using namespace std;

int a[50][50] = {1};
bool b[50][50] = {true};

int main()
{
    int nx, ny, hx, hy;
    cin >> nx >> ny >> hx >> hy;
    a[hx + 1][hy + 1] =
    a[hx + 2 + 1][hy + 1 + 1] =
    a[hx + 1 + 1][hy + 2 + 1] =
    a[hx - 1 + 1][hy + 2 + 1] =
    a[hx - 2 + 1][hy + 1 + 1] =
    a[hx - 2 + 1][hy - 1 + 1] =
    a[hx - 1 + 1][hy - 2 + 1] =
    a[hx + 1 + 1][hy - 2 + 1] =
    a[hx + 2 + 1][hy - 1 + 1] =
    0;
    b[hx + 1][hy + 1] =
    b[hx + 2 + 1][hy + 1 + 1] =
    b[hx + 1 + 1][hy + 2 + 1] =
    b[hx - 1 + 1][hy + 2 + 1] =
    b[hx - 2 + 1][hy + 1 + 1] =
    b[hx - 2 + 1][hy - 1 + 1] =
    b[hx - 1 + 1][hy - 2 + 1] =
    b[hx + 1 + 1][hy - 2 + 1] =
    b[hx + 2 + 1][hy - 1 + 1] =
    false;
    for (int i = 2; i <= nx; i++)
    {
        for (int j = 2; j <= ny; j++)
        {
        	if (b[i + 1][j + 1])
        	{
            	a[i + 1][j + 1] = a[i - 1 + 1][j + 1] + a[i + 1][j - 1 + 1];
            }
        }
    }
    cout << a[nx + 1][ny + 1] << endl;
    return 0;
}

凉凉的我。

2021/11/15 21:28
加载中...