为什么无法运行?
  • 板块学术版
  • 楼主__Sky__Dream__
  • 当前回复2
  • 已保存回复2
  • 发布时间2024/5/4 08:57
  • 上次更新2024/5/4 10:44:57
查看原帖
为什么无法运行?
1045731
__Sky__Dream__楼主2024/5/4 08:57

下面这个代码为什么运行不起来呢(求助)!!!

#include<cstdio>
#include<iostream>
#include<algorithm>
#include<cstring>
#include<bits/stdc++.h>
using namespace std;
int ans=1e9,X,Y,n,m,a[12][12],sum,f[12][12];
int b[4][2]={{1,0},{0,1},{0,-1},{-1,0}};
void dfs(int x,int y,int sm,int now)
{
    if(sm==sum/2)
    {
        if(now<ans && f[1][1]==1) ans=now;
        return ;
    }
    if(sm>sum/2) return ;
    for(int i=0;i<4;i++)
    {
        X=x+b[i][0]; Y=y+b[i][1];
        if(X<1 || X>n || Y<1 || Y>m) continue;
        if(f[X][Y]==1) continue;
        f[X][Y]=1; 
        dfs(X,Y,sm+a[X][Y],now+1);
        if(ans) return;
        f[X][Y]=0;
    }
    return ;
}

int main(){
    scanf("%d %d",&m,&n);
    for(int i=1;i<=n;i++)
        for(int j=1;j<=m;j++)
        {
            scanf("%d",&a[i][j]);
            sum+=a[i][j];
        }
    if(sum%2!=0)
    {
        printf("0\n");
        return 0;
    }    
    for(int i=1;i<=n;i++)
        for(int j=1;j<=m;j++)
        {
            memset(f,0,sizeof(f));
            f[i][j]=1; 
            dfs(i,j,a[i][j],1);
        }
    printf("%d\n",ans);
    return 0;
}

附求助!

2024/5/4 08:57
加载中...