[luogu]P2279 [HNOI2003]??????????????????[??????]
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[luogu]P2279 [HNOI2003]??????????????????[??????]相关的知识,希望对你有一定的参考价值。
??????????????? ???????????? ?????????????????? class cst ret dfs har san
[HNOI2003]??????????????????
????????????
2020?????????????????????????????????????????????????????????????????????n?????????????????????????????????????????????????????????n-1????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????A?????????B???????????????d?????????????????????????????????A?????????B????????????d???
?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????2?????????????????????
?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
??????????????????
???????????????
??????????????????input.txt???
???????????????????????????n ???n<=1000???????????????????????????????????????????????????n-1?????????????????????????????????????????????i??????????????????a[i]?????????????????????i?????????????????????a[i]??????????????????????????????????????????????????????????????????????????????????????????a[i]<i???
???????????????
??????????????????output.txt
?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
??????????????????
????????????1#???
6
1
2
3
4
5
????????????1#???
2
??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????dfs????????????????????????????????????????????????????????????????????????
??????????????????STL??????
1 //2017.11.6 2 //greedy 3 #include<iostream> 4 #include<cstdio> 5 #include<cstring> 6 #include<algorithm> 7 #include<queue> 8 using namespace std; 9 inline int read(); 10 namespace lys{ 11 const int N = 1e3 + 7 ; 12 struct egde{ 13 int to; 14 int next; 15 }e[N*3]; 16 struct DEEP{ 17 int node,deep; 18 bool operator < (const DEEP &a) const{ 19 return a.deep>deep; 20 } 21 }; 22 priority_queue<DEEP> q; 23 bool used[N]; 24 int pre[N],fa[N]; 25 int n,cnt; 26 void add(int x,int y){ 27 e[++cnt].to=y;e[cnt].next=pre[x];pre[x]=cnt; 28 e[++cnt].to=x;e[cnt].next=pre[y];pre[y]=cnt; 29 } 30 void dfs(int node,int deep){ 31 q.push((DEEP){node,deep}); 32 int i,v; 33 for(i=pre[node];i;i=e[i].next){ 34 v=e[i].to; 35 if(v==fa[node]) continue ; 36 fa[v]=node; 37 dfs(v,deep+1); 38 } 39 } 40 void dfs1(int node,int deep){ 41 if(deep>2) return ; 42 int i,v; 43 used[node]=true ; 44 for(i=pre[node];i;i=e[i].next){ 45 v=e[i].to; dfs1(v,deep+1); 46 } 47 } 48 int main(){ 49 int u,i; 50 n=read(); 51 for(i=1;i<n;i++){ 52 u=read(); add(u,i+1); 53 } 54 dfs(1,1); 55 cnt=0; 56 while(!q.empty()){ 57 DEEP x=q.top();q.pop(); 58 if(used[x.node]) continue ; 59 if(fa[fa[x.node]]) dfs1(fa[fa[x.node]],0); 60 else dfs1(1,0); 61 cnt++; 62 } 63 printf("%d\n",cnt); 64 return 0; 65 } 66 } 67 int main(){ 68 lys::main(); 69 return 0; 70 } 71 inline int read(){ 72 int kk=0,ff=1; 73 char c=getchar(); 74 while(c<???0???||c>???9???){ 75 if(c==???-???) ff=-1; 76 c=getchar(); 77 } 78 while(c>=???0???&&c<=???9???) kk=kk*10+c-???0???,c=getchar(); 79 return kk*ff; 80 }
以上是关于[luogu]P2279 [HNOI2003]??????????????????[??????]的主要内容,如果未能解决你的问题,请参考以下文章