dalao们帮忙看看这个代码哪里不对
  • 板块学术版
  • 楼主Kobeni_
  • 当前回复8
  • 已保存回复8
  • 发布时间2023/10/12 19:51
  • 上次更新2023/11/2 14:15:48
查看原帖
dalao们帮忙看看这个代码哪里不对
947917
Kobeni_楼主2023/10/12 19:51

(题名:P7074 [CSP-J2020] 方格取数)

#include<bits/stdc++.h>
using namespace std;
#define int long long
const int maxn=1e4,N=1e7;
int n,m,w[maxn][maxn];
long long ans,sum=-1e18;
int r[N][3];
int fx[4]={0,0,1,-1};
int fy[4]={0,1,0,0};
bool pd[maxn][maxn];
void print(int k){
	ans=0;
	for(int i=1;i<k;i++){
		ans+=w[r[i][1]][r[i][2]];
	}
	ans+=w[n][m];
	sum=max(ans,sum);
}
void fun(int x,int y,int k){
	r[k][1]=x;
	r[k][2]=y;
	pd[x][y]=1;
	if(x==n&&y==m){
		print(k);
	}
	int tx,ty;
	for(int i=1;i<=4;i++){
		tx=x+fx[i];
		ty=y+fy[i];
		if(tx>=1&&tx<=n&&ty>=1&&ty<=m&&pd[tx][ty]!=1){
			fun(tx,ty,k+1);
			pd[tx][ty]=0;
		}
	}
}
signed main(){
	cin>>n>>m;
	for(int i=1;i<=n;i++){
		for(int j=1;j<=m;j++){
			cin>>w[i][j];
		}
	}
	fun(1,1,1);
	cout<<sum;
	return 0;
}
2023/10/12 19:51
加载中...