30分 奇异方法 求调!!!
查看原帖
30分 奇异方法 求调!!!
1659265
liuyuze0417楼主2025/7/30 17:55

样例2 过了 测试点 4 5 7 过了 maxx函数没问题 while里不知哪里错了

#include<bits/stdc++.h>
using namespace std;
int a[25][25];
int b[4];
void maxx(int n1,int n2){
	b[1]=0;
	for(int i=1;i<=n1;i++){
		for(int j=1;j<=n2;j++){
			if(a[i][j]>b[1]) b[1]=a[i][j],b[2]=i,b[3]=j;	
		}
	}
}
int main(){
	int n1,n2,w=0,m,t,i1=0,j1;
	cin>>n1>>n2>>m;
	for(int i=1;i<=n1;i++){
		for(int j=1;j<=n2;j++){
			cin>>a[i][j];
		}
	}
	maxx(n1,n2);
	j1=b[3];
	while(b[1]){
		b[4]={0};
		maxx(n1,n2);
		t+=(abs(b[2]-i1)+abs(b[3]-j1)+1),w+=b[1];
		if((t+b[2])>m){
			cout<<w-b[1];
			return 0;
		}
		if((t+b[2])==m){
			cout<<w;
			break;
		}
		i1=b[2],j1=b[3],a[i1][j1]=-1;
	}
	cout<<w;
	return 0;
}

必回关

2025/7/30 17:55
加载中...