codeforces C. Xor-tree

http://codeforces.com/problemset/problem/430/C

题意:在一棵上有n个节点,有n-1条边,在每一个节点上有一个值0或1,然后给你一个目标树,让你选择节点,然后把节点的值翻转,它的孙子节点跟着翻转,依次类推。。。问经过最少次数可以使这棵树变成目标树。

思路:利用异或的性质,任何数和0异或为它本身,从根节点dfs就行。

 1 #include <cstdio>
 2 #include <vector>
 3 #include <cstring>
 4 #include <algorithm>
 5 #define maxn 200100
 6 using namespace std;
 7 
 8 int n,k,x;
 9 int a[maxn];
10 int b[maxn];
11 int num[maxn];
12 bool vis[maxn];
13 vector<int>g[maxn];
14 int ans[maxn];
15 int cnt;
16 void dfs(int c,int x,int y)
17 {
18     if((a[c]^x)!=b[c])
19     {
20         ans[cnt++]=c;
21         x=!x;
22     }
23     for(int i=0; i<(int)g[c].size(); i++)
24     {
25         int v=g[c][i];
26         if(!vis[v])
27         {
28             vis[v]=true;
29             dfs(v,y,x);
30         }
31     }
32 }
33 
34 int main()
35 {
36     scanf("%d",&n);
37     for(int i=1; i<n; i++)
38     {
39         int u,v;
40         scanf("%d%d",&u,&v);
41         g[u].push_back(v);
42         g[v].push_back(u);
43     }
44     for(int i=1; i<=n; i++)
45     {
46         scanf("%d",&a[i]);
47     }
48     for(int i=1; i<=n; i++)
49     {
50         scanf("%d",&b[i]);
51     }
52     vis[1]=true;
53     dfs(1,0,0);
54     printf("%d\n",cnt);
55     for(int i=0; i<cnt; i++)
56     {
57         printf("%d\n",ans[i]);
58     }
59     return 0;
60 }
View Code

 

转载于:https://www.cnblogs.com/fanminghui/p/4314210.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/420157.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

前端学习(1383):多人管理项目3

blog.js const express require(express); //创建网站服务器 const app express(); //开放静态资源文件 const path require(path);//告诉express框架模板所在的位置 app.set(views, path.join(__dirname, views)); //告诉express框架模板的后缀是什么 app.set(view engine…

java 运算优先级_Java-运算符优先级

我们先后学习了不同的运算符&#xff0c;通过运算符我们的能进行各种不同的操作实现自己的想要的效果&#xff0c;但是此时还存在一个问题&#xff0c;当在一个表达式中&#xff0c;有可能包含多个有不同运算符连接起来的、具有不同数据类型的数据对象。由于表达式有多种运算&a…

前端学习(1384):多人管理项目4资源的路径

blog.js const express require(express); //创建网站服务器 const app express(); //开放静态资源文件 const path require(path);//告诉express框架模板所在的位置 app.set(views, path.join(__dirname, views)); //告诉express框架模板的后缀是什么 app.set(view engine…

mysql中新建不了查询语句_将excel和mysql建立链接后,如何通过在excel里面执行mysql查询语句,然后建立查询...

启动excel,点击data选项卡&#xff0c;在这个选项卡下选择new query&#xff0c;from other sources&#xff0c;form odbc然后点击advanced options选项&#xff0c;填入如下查询语句select * from test1.biao1;解释一下&#xff1a;test1是我的mysql一个数据库的名字&#xf…

前端学习(1385):多人管理项目5抽离

blog.js const express require(express); //创建网站服务器 const app express(); //开放静态资源文件 const path require(path);//告诉express框架模板所在的位置 app.set(views, path.join(__dirname, views)); //告诉express框架模板的后缀是什么 app.set(view engine…

第三篇——第二部分——第六文 监控SQL Server镜像

第三篇——第二部分——第六文 监控SQL Server镜像 原文:第三篇——第二部分——第六文 监控SQL Server镜像 原文出处&#xff1a;http://blog.csdn.net/dba_huangzj/article/details/26846203要优化&#xff0c;首先要监控&#xff0c;看看是否有性能问题&#xff0c;如果有&a…

前端学习(1386):多人管理项目6骨架

blog.js const express require(express); //创建网站服务器 const app express(); //开放静态资源文件 const path require(path);//告诉express框架模板所在的位置 app.set(views, path.join(__dirname, views)); //告诉express框架模板的后缀是什么 app.set(view engine…

前端学习(1387):多人管理项目7登录 数据库连接

blog.js const express require(express); //创建网站服务器 const app express(); //开放静态资源文件 const path require(path); require(./model/connect)//告诉express框架模板所在的位置 app.set(views, path.join(__dirname, views)); //告诉express框架模板的后缀是…

mysql教程丿it教程网_MySQL整体

整体大纲数据库实现数据持久化使用完整的管理系统统一管理&#xff0c;易于查询数据库的相关概念DB&#xff1a;数据库(database)&#xff1a;存储数据的“仓库”。它保存了一系列有组织的数据。DBMS数据库管理系统(Database Management System)。数据库是通过DBMS创建和操作的…

前端学习(1364):学生档案信息管理6

service.js //引入http模块 const http require(http); //创建网站服务器 const app http.createServer();const template require(art-template); const path require(path); const serveStatic require(serve-static);//静态资源服务 const serve serveStatic(path.jo…

前端学习(1389):多人管理项目9登录功能具体实现

blog.js const express require(express); //创建网站服务器 const app express(); //开放静态资源文件 const path require(path); require(./model/connect)//告诉express框架模板所在的位置 app.set(views, path.join(__dirname, views)); //告诉express框架模板的后缀是…

java弹出提示窗口_Java实现弹窗效果的基本操作(2)

本文为大家分享了Java实现弹窗效果的实现代码&#xff0c;供大家参考&#xff0c;具体内容如下1、任务简介我在5月23日写过一篇文章为《Java弹窗操作》&#xff0c;从目前来看浏览量不错&#xff0c;故我将之前省略了的两个程序分享出来&#xff0c;同时也将更多的方法分享出来…

前端学习(1390):多人管理项目10服务器认证

blog.js const express require(express); //创建网站服务器 const app express(); //开放静态资源文件 const path require(path); require(./model/connect)//告诉express框架模板所在的位置 app.set(views, path.join(__dirname, views)); //告诉express框架模板的后缀是…

前端学习(1391):多人管理项目11邮箱地址查询信息

blog.js //管理页面 //展示页面 const express require(express);const admin express.Router();admin.get(/login, (req, res) > {res.render(admin/login) }); admin.get(/user, (req, res) > {res.render(admin/user) }); admin.post(/login, async(req, res) >…

java tea属于红茶吗_什么茶属于红茶类

茶叶在中国的历史已经非常悠久了。相信很多人都喝过红茶&#xff0c;红茶种类还是比较多的&#xff0c;那么知道什么茶属于红茶类吗&#xff1f;平时买回来的红茶该怎么保存比较好呢&#xff1f;什么茶属于红茶类 1、中国的红茶种类还是比较多的。其中滇红&#xff0c;祁红&…

前端学习(1392):多人管理项目12加密

blog.js //管理页面 //展示页面 const express require(express);const admin express.Router();admin.get(/login, (req, res) > {res.render(admin/login) }); admin.get(/user, (req, res) > {res.render(admin/user) }); admin.post(/login, async(req, res) >…

java 注入 循环_spring依赖注入——循环依赖

上一篇博客简单地分析了下依赖注入。但是对于依赖注入的很多细节&#xff0c;都没有深入的分析。这一篇博客会继续分析spring的依赖注入。这篇博客会解决分析getBean缓存时候遗留下来的循环依赖问题。循环依赖分析首先明确下&#xff0c;只有单例情况下&#xff0c;spring才会试…

前端学习(1393):多人管理项目13加密实现

blog.js //管理页面 //展示页面 const express require(express);const admin express.Router();admin.get(/login, (req, res) > {res.render(admin/login) }); admin.get(/user, (req, res) > {res.render(admin/user) }); admin.post(/login, async(req, res) >…

java提高篇四_(转)java提高篇(四)-----理解java的三大特性之多态

面向对象编程有三大特性&#xff1a;封装、继承、多态。封装隐藏了类的内部实现机制&#xff0c;可以在不影响使用的情况下改变类的内部结构&#xff0c;同时也保护了数据。对外界而已它的内部细节是隐藏的&#xff0c;暴露给外界的只是它的访问方法。继承是为了重用父类代码。…