【JZOJ 5438】【NOIP2017提高A组集训10.31】Tree
来源:互联网 发布:mysql add user 编辑:程序博客网 时间:2024/06/06 09:46
Description
Solution
有一种方便的做法,
我们要保证儿子与父亲一样嘛,最后再考虑根,
对于一条边:x->y,如果x,y的颜色不一样,就在y上标记,
复杂度:
Cdeo
#include <cstdio>#include <algorithm>#define fo(i,a,b) for(int i=a;i<=b;i++)#define fod(i,a,b) for(int i=a;i>=b;i--)#define efo(i,q) for(int i=A[q];i;i=B[i][0])#define min(q,w) ((q)>(w)?(w):(q))#define max(q,w) ((q)<(w)?(w):(q))using namespace std;const int N=500500;int read(int &n){ char ch=' ';int q=0,w=1; for(;(ch!='-')&&((ch<'0')||(ch>'9'));ch=getchar()); if(ch=='-')w=-1,ch=getchar(); for(;ch>='0' && ch<='9';ch=getchar())q=q*10+ch-48;n=q*w;return n;}int m,n,ans;int B[2*N][2],A[N],B0;int Ans[N],b[N];int d[N][3];void link(int q,int w){ B[++B0][0]=A[q],A[q]=B0,B[B0][1]=w; B[++B0][0]=A[w],A[w]=B0,B[B0][1]=q;}void bfs(){ int S=1,T=1; d[1][0]=1; d[1][1]=0; d[1][2]=0; for(;S<=T;S++) { int q=d[S][0]; int Cl=d[S][2]; b[q]=b[q]^Cl; if(b[q])Ans[++ans]=q,Cl=!Cl,b[q]=0; efo(i,q)if(B[i][1]!=d[S][1]) { d[++T][0]=B[i][1]; d[T][1]=q; d[T][2]=Cl; } }}int main(){ freopen("tree.in","r",stdin); freopen("tree.out","w",stdout); int q,w; read(n); fo(i,1,n)read(b[i]); fo(i,1,n-1)read(q),read(w),link(q,w); bfs(); sort(Ans+1,Ans+1+ans); fo(i,1,ans)printf("%d ",Ans[i]); printf("\n"); return 0;}
阅读全文
0 0
- 【JZOJ 5438】【NOIP2017提高A组集训10.31】Tree
- JZOJ 5438. 【NOIP2017提高A组集训10.31】Tree
- JZOJ 5438. 【NOIP2017提高A组集训10.31】Tree
- 【JZOJ 5439】【NOIP2017提高A组集训10.31】Calculate
- JZOJ 5439. 【NOIP2017提高A组集训10.31】Calculate
- JZOJ 5437. 【NOIP2017提高A组集训10.31】Sequence
- JZOJ 5437. 【NOIP2017提高A组集训10.31】Sequence
- JZOJ 5439. 【NOIP2017提高A组集训10.31】Calculate
- JZOJ5438. 【NOIP2017提高A组集训10.31】Tree
- JZOJ 5432. 【NOIP2017提高A组集训10.28】三元组
- 【JZOJ 5432】【NOIP2017提高A组集训10.28】三元组
- JZOJ 5407. 【NOIP2017提高A组集训10.21】Deep
- JZOJ 5408. 【NOIP2017提高A组集训10.21】Dark
- 【JZOJ 5409】【NOIP2017提高A组集训10.21】Fantasy
- JZOJ 5410. 【NOIP2017提高A组集训10.22】小型耀斑
- 【JZOJ 5410】【NOIP2017提高A组集训10.22】小型耀斑
- 【JZOJ 5411】【NOIP2017提高A组集训10.22】友谊
- JZOJ 5414. 【NOIP2017提高A组集训10.22】幸运值
- 纪念日
- 容器的简单介绍
- Ubuntu之首次设置root密码
- C++程序设计案例实训教程第14章
- 深入理解 Linux 的 RCU 机制
- 【JZOJ 5438】【NOIP2017提高A组集训10.31】Tree
- android笔记-7.0App间共享文件
- Go基本类型
- 网关协议学习:CGI、FastCGI、WSGI
- python: bisect库
- Spring AOP基于@AspectJ开发
- -bash: reboot: command not found
- css hack
- Sheel学习---2