P10988求条,玄关
  • 板块灌水区
  • 楼主RAY091016
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/12/11 18:12
  • 上次更新2024/12/11 21:32:43
查看原帖
P10988求条,玄关
772875
RAY091016楼主2024/12/11 18:12

15pts求条

#include<bits/stdc++.h>
#define int long long
using namespace std;
int n,f[1010][1010],a[1010][1010];
signed main(){
	cin>>n;
	for(int i=1;i<=n;i++){
		for(int j=1;j<=n;j++){
			cin>>a[i][j];
		}
	}
	memset(f,0x3f,sizeof f);
	for(int i=1;i<=n;i++){
		f[i][1]=i-1;
		f[i][2]=i;
	}
	for(int i=3;i<=n;i++){
		if(a[1][i]<a[1][i-1]){
			if(a[1][i-1]<a[1][i-2]){
				f[1][i]=f[1][i-1];
			}
			else{
				f[1][i]=f[1][i-1]+1;
			}
		}
		else{
			f[1][i]=f[1][i-1]+1;
		}
	}
	for(int i=2;i<=n;i++){
		for(int j=3;j<=n;j++){
			if(a[i][j]<a[i][j-1]){
				if(a[i][j-1]<a[i][j-2]){
					f[i][j]=f[i][j-1];
				}
			}
			f[i][j]=min(f[i][j],min(f[i-1][j]+1,f[i][j-1]+1));
		}
	}
	cout<<f[n][n];
	return 0;
}
2024/12/11 18:12
加载中...