help帮忙看一下

回复帖子

@int树先生 2020-01-14 22:17 回复

谢谢大佬

#include<iostream>
#include <algorithm>
using namespace std;
int bx,by;
int mx,my;
long long ma[22][22];
int fx[]={-1,-1,-2,-2,1,1,2,2};
int fy[]={-2,2,-1,1,-2,2,-1,1};
int main()
{
    cin>>bx>>by;
    cin>>mx>>my;
    mx++;
    my++;
    ma[mx][my]=-1;
    ma[1][0]=1;
    for(int i=0;i<8;i++){
        if(mx+fx[i]<1||my+fy[i]<1)continue;
        ma[mx+fx[i]][my+fy[i]]=-1;
    }
    for(int i=1;i<=7;i++){
        for(int k=1;k<=7;k++){
            if(ma[i][k]==-1)continue;
            if(ma[i-1][k]==-1&&ma[i][k-1]==-1){
                ma[i][k]=0;
                continue;
            }
            if(ma[i][k-1]==-1){
                ma[i][k]=ma[i-1][k];
                continue;
            }
            if(ma[i-1][k]==-1){
                ma[i][k]=ma[i][k-1];
                continue;
            }
            ma[i][k]=ma[i-1][k]+ma[i][k-1];
        }
    }
    cout<<ma[bx+1][by+1];
    return 0;
}
@int树先生 2020-01-14 22:41 回复 举报

下一个

#include<iostream>
using namespace std;
bool a[21][21];
unsigned long long sum[21][21];
int x[]={0,1,1,2,2,-1,-1,-2,-2};
int y[]={0,2,-2,1,-1,2,-2,1,-1};
int manx,many;
int bx,by;
int main()
{
    cin>>bx>>by;
    cin>>manx>>many;
    for(int i=0;i<=8;i++){
        if(manx+x[i]<0||manx+x[i]>20||many+y[i]<0||many+y[i]>20)continue;
        a[manx+x[i]][many+y[i]]=true;
    }
    sum[0][0]=1;
    for(int i=0;i<=bx;i++){
        for(int k=0;k<=by;k++){
            if(!a[i][k])continue;
            else sum[i][k]=sum[i-1][k]+sum[i][k-1];
        }
    }
    cout<<sum[bx][by];
    return 0;
}
@Taki 2020-01-16 11:45 回复 举报

line 18,line 19 : from 1 to bx from 1 to by

line 20 :

if(a[i][k])continue;
反馈
如果你认为某个帖子有问题,欢迎向洛谷反馈,以帮助更多的同学。



请具体说明理由,以增加反馈的可信度。