1 条题解
-
1
#include<bits/stdc++.h> using namespace std; #define int long long #define lowbit(x) x&-x const int INF=0x3f3f3f3f3f3f3f3f; const int N=1e5+10; const int M=2e6+10; vector<int>g[N]; int n; int a[N]; int vis[N]; int dfs(int u){ if(vis[u]) return vis[u]; int cnt=0; for(auto v:g[u]){ if(a[v]>=a[u]) continue; cnt+=dfs(v); } return vis[u]=cnt+1; } int ans; signed main(){ ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); cin>>n; for(int i=1;i<=n;i++){ cin>>a[i]; } for(int i=1;i<n;i++){ int u,v; cin>>u>>v; g[u].push_back(v); g[v].push_back(u); } for(int i=1;i<=n;i++){ ans=max(ans,dfs(i)); } cout<<ans; return 0; }
信息
- ID
- 3583
- 时间
- 1000ms
- 内存
- 512MiB
- 难度
- 省选/NOI-
- 标签
- 递交数
- 1
- 已通过
- 1
- 上传者