关于函数内变量的定义,荔浦
查看原帖
关于函数内变量的定义,荔浦
480345
like_rain楼主2023/2/3 10:23

代码

#include<bits/stdc++.h>
using namespace std;
const int dx[4]={0,1,0,-1};
const int dy[4]={1,0,-1,0};
int a[10][10],n,ans,maxx;//,maxx;
void dfs(int x,int y,int now,int flag)
{
//	int maxx=0;
	if(x<1||y<1||x>n||y>n) return;
	if(x==n&&y==n)
	{
		flag=1,now-=a[n][n];
		if(now>maxx) maxx=max(maxx,now);
		else return;
	}
	if(x==1&&y==1&&flag==1) ans=max(ans,now);
	if(flag==0)
		for(int i=0;i<2;i++)
		{
			int xx=x+dx[i],yy=y+dy[i],aa=a[xx][yy];
			a[xx][yy]=0,dfs(xx,yy,now+aa,flag),a[xx][yy]=aa;
		}
	else 
		for(int i=2;i<4;i++)
		{
			int xx=x+dx[i],yy=y+dy[i],aa=a[xx][yy];
			a[xx][yy]=0,dfs(xx,yy,now+aa,flag),a[xx][yy]=aa;
		}
}
int main()
{
	cin>>n;
	int x,y,z;
	for(;;)
	{
		cin>>x>>y>>z;
		if(x==0&&y==0&&z==0) break;
		a[x][y]=z;
	}
	dfs(1,1,0,0);
	cout<<ans;
	return 0;
}

第八行的变量maxx定义在函数内则超时,定义到函数外就过了,蒟蒻不理解这是为什么

20和26行也有变量的定义,但并不影响程序结果,感觉好离谱,可能是我太蒻了

望诸位大佬不吝赐教,万分感谢

2023/2/3 10:23
加载中...