问题标题: 酷町堂:5102

0
0
已解决
侯平仄
侯平仄
新手天翼
新手天翼

请问5102题我怎么错了:

#include<iostream>
#include<map> 
#include<bits/stdc++.h>
typedef unsigned long long ull;
using namespace std;
int n,cnt,m,x,y;
map<ull,map<ull,ull> >f,ma;
int main(){
    cin>>n>>m>>x>>y;
    ma[x+2][y+1]=1;
    ma[x+1][y+2]=1;
    ma[x-1][y+2]=1;
    ma[x-2][y+1]=1;
    ma[x+2][y-1]=1;
    ma[x+1][y-2]=1;
    ma[x-1][y-2]=1;
    ma[x-2][y-1]=1;
    f[0][0]=1;
    for(int i=0;i<=n;i++){
        for(int j=0;j<=m;j++){
            if(i==x||j==y||ma[i][j]) continue;
            if(i==0&&j==0) continue;
            int sum=0;
            for(int k=0;k<=i;k++){
                sum+=f[k][j];
            }
            for(int k=0;k<=j;k++){
                sum+=f[i][k];
            } 
            f[i][j]=sum;
//          cout<<sum<<' ';
        }
//      cout<<endl;
    }
    cout<<f[n][m];
}

 


0
已采纳
王泽宇
王泽宇
初级光能
初级光能
cin>>n>>m>>x>>y;
    a[x][y]=1;
    for(int i=0;i<8;i++){
    	int dx=dir[i][0]+x,dy=dir[i][1]+y;
    	if(dx>=0&&dx<=n&&dy>=0&&dy<=m){
    		a[dx][dy]++;
        }
    }
    f[0][0]=1;
    for(int i=0;i<=n;i++){
        for(int j=0;j<=m;j++){
            if(a[i][j]==1||i==0&&j==0) continue;
            f[i][j]=hs(i,j);
        }
    } 
    cout<<f[n][m];

hs():

int sum=0;
    for(int i=0;i<=x;i++){
        sum+=f[i][y];
    }
    for(int j=0;j<=y;j++){
        sum+=f[x][j]; 
    }
    return sum;

 

王泽宇在2020-08-07 09:37:11追加了内容

作业啊~~~~

望采纳

王泽宇在2020-08-07 09:37:32追加了内容

dir

自己写

王泽宇在2020-08-07 09:38:12追加了内容

上课代码你不用,用个map,比错

1
0
0
王子健
王子健
初级天翼
初级天翼

粘贴4391代码,改元素判断

我要回答