acgo题库
  • 首页
  • 题库
  • 题单
  • 竞赛
  • 讨论
  • 排行
  • 团队
  • 备赛专区

    竞赛

    • CSP-J/S
    • 蓝桥杯

    考级

    • GESP
    • CPA
    • 电子学会考级
登录
注册
题目详情题解(0)讨论(0)提交记录(0)
  • 题解

    #include<cstdio> #include<cstring> #include<algorithm> using namespace std; int n,m,ans,map[10][10]; bool v[10][10]; bool check(int x,int y) { if(v[x][y+1]==0 && v[x][y-1]==0 && v[x+1][y]==0 && v[x+1][y+1]==0 && v[x+1][y-1]==0 && v[x-1][y]==0 && v[x-1][y+1]==0 && v[x-1][y-1]==0) return 1; return 0; } void dfs(int x,int y,int z) { ans=max(ans,z); int xx=x; int yy=y+1; if(yy>m) { xx=x+1; yy=1; if(xx>n) return; } if(check(xx,yy)) { v[xx][yy]=1; dfs(xx,yy,z+map[xx][yy]); v[xx][yy]=0; } dfs(xx,yy,z); } int main() { int t; scanf("%d",&t); while(t--) { ans=0; memset(v,0,sizeof(v)); scanf("%d%d",&n,&m); for(int i=1;i<=n;i++) for(int j=1;j<=m;j++) scanf("%d",&map[i][j]); v[1][1]=1; dfs(1,1,map[1][1]); memset(v,0,sizeof(v)); dfs(1,1,0); printf("%d\n",ans); } return 0; }

    userId_undefined

    陌离﹠

    8阅读
    0回复
    0点赞
首页