제출 #930675

#제출 시각아이디문제언어결과실행 시간메모리
930675XiaoyangCat Exercise (JOI23_ho_t4)C++17
31 / 100
219 ms249384 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; #define fi first #define se second #define pii pair<int,int> #define pll pair<long long,long long> #define pb push_back #define debug(x) cerr<<#x<<"="<<x<<endl #define pq priority_queue #define inf 1ll<<60 #define rep(i,a,b) for (ll i=a;i<(b);i++) #define MP make_pair #define SZ(x) (int(x.size())) #define mod 1000000007 #define ALL(x) x.begin(),x.end() #define endl "\n" void inc(ll &a,ll b) {a=(a+b)%mod;} void dec(ll &a,ll b) {a=(a-b+mod)%mod;} int prod(ll a,ll b) {return ll(a)*ll(b)%mod;} int lowbit(ll x) {return x&(-x);} ll p0w(ll base,ll p) {ll ret=1;while(p>0){if (p%2ll==1ll) ret=ret*base%mod;base=base*base%mod;p/=2ll;}return ret;} const ll maxn=5555; vector<ll>alist[maxn]; ll p[maxn],blocked[maxn]; ll dp[maxn]; ll dfs(ll u,ll fa){ blocked[u]=1; ll tmp=0; for(auto x:alist[u]){ if(x==fa)continue; if(blocked[x])continue; ll mx=x; bool vis[maxn]; memset(vis,0,sizeof vis); vis[x]=1; ll dis[maxn]; memset(dis,0,sizeof dis); dis[x]=1; queue<ll>q; q.push(x); while(!q.empty()){ ll uu=q.front(); q.pop(); for(auto xx:alist[uu]){ if(blocked[xx])continue; if(vis[xx])continue; if(p[xx]>p[mx])mx=xx; dis[xx]=dis[uu]+1; vis[xx]=1; q.push(xx); } } //rep(i,1,10)cout<<dis[i]<<" "; //cout<<endl; //debug(mx); tmp=max(tmp,dfs(mx,-1)+dis[mx]); } return dp[u]=tmp; } signed main(){ ios::sync_with_stdio(0); cin.tie(0); ll n;cin>>n; rep(i,1,n+1)cin>>p[i]; rep(i,1,n){ ll a,b;cin>>a>>b; alist[a].pb(b); alist[b].pb(a); } ll st=0; rep(i,1,n+1){ if(p[i]>p[st])st=i; } memset(dp,0,sizeof dp); cout<<dfs(st,-1)<<endl; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...