DFS+记忆化求调!!!!
查看原帖
DFS+记忆化求调!!!!
1050501
ATION001楼主2024/5/25 16:34

我还以为会TLE没想到WA了……

一个点都没TLE

代码:

#include<bits/stdc++.h>
using namespace std;
const int N=2e5+10;
int n,m,a[N],cnt;
int k[N];
vector<int>v[N];
int dfs(int x){
	if(k[x]){
		return k[x];
	}
	if(x==1){
		return k[x]=1;
	}
	int ans=1;
	for(auto o:v[x]){
		if(a[o]<a[x]){
			ans=max(ans,dfs(o)+1);
		}
	}
	return k[x]=ans;
}
int main(){
	ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
	cin>>n>>m;
	for(int i=1;i<=n;i++){
		cin>>a[i];
	}
	for(int i=1,l,r;i<=m;i++){
		cin>>l>>r;
		v[l].push_back(r),v[r].push_back(l);
	}
	cnt=dfs(n);
	cout<<(k[1]?cnt:0);
	return 0;
}
2024/5/25 16:34
加载中...