标签:11 head 被删 int 林檎 len next edge 联考
性质:删掉任意一个点后,原来能被删的点仍能被删,原来不能被删的点仍不能被删
判断每个点能否被删,并从小到大输出
#include<cstdio> using namespace std; int head[300005],len,a[300005],n,x,y,flag[300005],ans; struct EDGE{ int to,next; }edge[600005]; void add(int x,int y){ ++len; edge[len].to=y; edge[len].next=head[x]; head[x]=len; } void dfs1(int u,int fa){ flag[u]=a[u]; for (register int i=head[u];i;i=edge[i].next){ int v=edge[i].to; if (v!=fa){ dfs1(v,u); flag[u]&=a[v]; } } } int main(){ scanf ("%d",&n); for (register int i=2;i<=n;++i){ scanf ("%d%d",&x,&a[i]); add(x,i);add(i,x); } dfs1(1,0); for (register int i=1;i<=n;++i){ if (flag[i]) ++ans; } printf ("%d\n",ans); for (register int i=1;i<=n;++i){ if (flag[i]) printf ("%d ",i); } printf ("\n"); return 0; }
标签:11,head,被删,int,林檎,len,next,edge,联考 来源: https://www.cnblogs.com/DFTMR/p/11832002.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。