社区讨论
为啥我只能循环一次?
P1123取数游戏参与者 2已保存回复 1
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 1 条
- 当前快照
- 1 份
- 快照标识符
- @mi86jo3b
- 此快照首次捕获于
- 2025/11/21 09:26 4 个月前
- 此快照最后确认于
- 2025/11/21 09:26 4 个月前
CPP
#include<cstdio>
const char dx[]={0,1,1,0,-1};
const char dy[]={0,0,1,1,1};
char n,m,t;
int jz[7][7],op;bool bf[8][8];
inline void dfs(int x,int y,int po)
{
if(x>n)
x=1,y++;
if(y>m)
{
if(po>op)
op=po;
return;
}
dfs(x+1,y,po);
if(bf[x][y])
return;
for(int i=1;i<=4;i++)
bf[x+dx[i]][y+dy[i]]=true;
dfs(x+1,y,po+jz[x][y]);
for(int i=1;i<=4;i++)
bf[x+dx[i]][y+dy[i]]=false;
}
inline int mai()
{
scanf("%d%d",&n,&m);
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
scanf("%d",&jz[i][j]);
dfs(1,1,0);
return op;
}
int main()
{
scanf("%d",&t);
printf("%d",t);
//printf("%d",yzc::main());
for(int maini=1;maini<=t;maini++)
printf("%d\n",mai());
}
回复
共 1 条回复,欢迎继续交流。
正在加载回复...