Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
1819 18级王浩宇 【S】T1最大后缀值个数 C++ 运行超时 70 2000 MS 20804 KB 730 2020-11-16 10:11:47

Tests(7/10):


#include<bits/stdc++.h> #define int long long using namespace std; const int N=1e6+10; int n; int fa[N],v[N]; int ans[N]; bool vis[N]; int dfs(int p) { vis[p]=true; for(int i=p;i;i=fa[i]) { if(v[i]==v[p]) ans[p]++; if(v[i]>v[p]) { if(!vis[i]) dfs(i); ans[p]+=ans[i]; break; } } return ans[p]; } signed main() { scanf("%lld",&n); for(int i=2;i<=n;i++) scanf("%lld",&fa[i]); for(int i=1;i<=n;i++) scanf("%lld",&v[i]); for(int i=1;i<=n;i++) { if(!vis[i]) dfs(i); printf("%lld ",ans[i]); } return 0; }


测评信息: