社区讨论

【求调】70pts,#5 #6 #7

P1434[SHOI2002] 滑雪参与者 2已保存回复 1

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
1 条
当前快照
1 份
快照标识符
@mje16neu
此快照首次捕获于
2025/12/20 16:23
3 个月前
此快照最后确认于
2025/12/22 18:05
3 个月前
查看原帖
CPP
#include<bits/stdc++.h>
using namespace std;
int n , m , a[105][105] , dp[105][105];
struct swe{
	int i , j , num;
	bool operator ()(const swe &a , const swe &b) const{
		return a.num > b.num;
	}
};
priority_queue<swe , vector<swe> , swe> q_dp;
int main(){
	cin >> n >> m;
	for(int i = 1;i <= n;i ++){
		for(int j = 1;j <= m ;j++){
			cin >> a[i][j];	
			swe test = {i , j , a[i][j]};
			q_dp.push(test);
		}
	}
	while(!q_dp.empty()){
		swe test = q_dp.top();
		int i = test.i;
		int j = test.j;
		q_dp.pop();
		dp[i][j] = max(max(dp[i][j] , 1), max(dp[i - 1][j] + 1 , max(dp[i + 1][j] + 1 , max(dp[i][j - 1] + 1, dp[i][j + 1] + 1))));
	}
	int maxn = 0;
	for(int i = 1;i <= n;i ++){
		for(int j = 1;j <= m ;j++){
			maxn = max(maxn , dp[i][j]);
		}
	}
	cout << maxn;
	return 0;
}

回复

1 条回复,欢迎继续交流。

正在加载回复...