codechef Polo the Penguin and the Tree

一般xor 的题目都是用trie解决。

那这道题是在树上的trie;

首先:从root==1,遍历树得到1到所有节点的xor 值。

        然后对于每个点我们把其插入二进制树中。

对于每一个点查找其二进值异或值最大的数 依次遍历下来。

注意:边的数量开两倍以上,RE很多次。

find函数具体是这样的:

对于一个书二进值:10001000101

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<algorithm>
 4 #include<cmath>
 5 #include<string>
 6 #include<cstring>
 7 #include<set>
 8 #include<map>
 9 #include<stdlib.h>
10 
11 #define N  223456
12 using namespace std;
13 struct edge
14 {
15   int v,w,next;
16 }e[N];
17 int tot,nid;
18 int head[N],ans[N];
19 int next[N*30][2];
20 void add(int u,int v,int w)
21 {
22    e[tot].v=v;
23    e[tot].w=w;
24    e[tot].next=head[u];
25    head[u]=tot++;
26 }
27 
28 void dfs(int u,int fa)
29 {
30    for (int i=head[u];i!=-1;i=e[i].next)
31    {
32       int v=e[i].v;
33       if (v==fa) continue;
34       ans[v]=ans[u]^e[i].w;
35       dfs(v,u);
36    }
37 }
38 
39 void insert(int node,int d,int val)
40 {
41    if (d==30)  return;
42    int p=29-d;
43    int c=(val&(1<<p))  ? 1:0;
44 
45    if (next[node][c]==-1) next[node][c]=++nid;
46    insert(next[node][c],d+1,val);
47 }
48 
49 int solve(int node,int d,int val)
50 {
51   if (d==30) return 0;
52   int p=29-d;
53   int c=(val&(1<<p))?0:1;
54 
55   if (next[node][c]!=-1)
56   return (1<<p)+solve(next[node][c],d+1,val);
57 
58   return solve(next[node][!c],d+1,val);
59 }
60 
61 int main()
62 {
63   int T;
64   scanf("%d",&T);
65   while (T--)
66   {
67      int n;
68      scanf("%d",&n);
69      memset(head,-1,sizeof(head));
70      memset(next,-1,sizeof(next));
71      memset(ans,0,sizeof(ans));
72      tot=nid=0;
73      for (int i=1;i<n;i++)
74      {
75         int u,v,w;
76         scanf("%d%d%d",&u,&v,&w);
77         add(u,v,w);
78         add(v,u,w);
79      }
80 
81      dfs(1,-1);
82      for (int i=1;i<=n;i++) insert(0,0,ans[i]);
83      int tmp=0;
84 
85      for (int i=1;i<=n;i++)
86      tmp=max(tmp,solve(0,0,ans[i]));
87      printf("%d\n",tmp);
88      }
89      return 0;
90   }
View Code

 

我们先要判断           01110111010

存在否,这样才能达到最大值

 

转载于:https://www.cnblogs.com/forgot93/p/4383735.html

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

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

相关文章

mysql memcached 使用场景_memcache 应用场景

一..memcache应用场景1.应用场景一&#xff1a; 缓解数据库压力&#xff0c;提高交互速度。它的一个总原则是将经常需要从数据库读取的数据缓存在memcached中。这些数据也分为几类&#xff1a;(1)、经常被读取并且实时性要求不强可以等到自动过期的数据。例如网站首页最新文章列…

link2001错误无法解析外部符号metaObject

http://blog.sina.com.cn/s/blog_791f544a0100r01b.html1>MainWindowBottomWidget.obj : error LNK2001: 无法解析的外部符号 "public: virtual struct QMetaObject const * __thiscall MainWindowBottomWidget::metaObject(void)const " (?metaObjectMainWindow…

mysql主从和dump_MySQL主从同步--原理及实现(一)

1、什么是mysql主从同步&#xff1f;当master(主)库的数据发生变化的时候&#xff0c;变化会实时的同步到slave(从)库。2、主从同步有什么好处&#xff1f;水平扩展数据库的负载能力。容错&#xff0c;高可用。Failover(失败切换)/High Availability数据备份。3、主从同步的原理…

【转】Mybatis/Ibatis,数据库操作的返回值

该问题&#xff0c;我百度了下&#xff0c;根本没发现什么有价值的文章&#xff1b;还是看源代码&#xff08;详见最后附录&#xff09;中的注释&#xff0c;最有效了&#xff01;insert&#xff0c;返回值是&#xff1a;新插入行的主键&#xff08;primary key&#xff09;&am…

解密多媒体封装解封装框架

上一篇文章我们搭好了环境并编译出所需的ffmpeg库&#xff0c;本篇我们讨论如何利用ffmpeg提供的API函数进行多媒体文件的解封装&#xff08;demux&#xff09;过程。在讲解之前&#xff0c;我们需要了解一些基本的多媒体文件知识&#xff0c;大虾请飘过。 容器格式&#xff1a…

python入门及日常应用_python的日常应用-入门篇02

大部分人在编写自己第一个程序的时候会做什么&#xff1f;当然是让你的程序对我们的世界大喊一声“Hello world!”了。今天我们来学习的便是Python中的输出语句。如何让你的程序“说话”&#xff1f;我们想要让程序帮我们做事之前首先要教会程序怎么“说话”&#xff0c;这样我…

bzoj 3611

和BZOJ消耗站一样&#xff0c;先将那个询问的简图构建出来&#xff0c;然后就是简单的树形DP。 &#xff08;倍增数组开小了&#xff0c;然后就狂WA&#xff0c;自己生成的极限数据深度又没有那么高&#xff0c;链又奇迹般正确&#xff09; 1 #include <cstdio>2 #includ…

vscode添加源文件_VSCode自制的IDE编译多个源文件

文/EdwardVSCode的预定义变量我们上一篇文章中讲述了如何将MinGW工具嵌入到VSCode文本编辑器中&#xff0c;在这个配置的过程中&#xff0c;我们只需要通过修改VSCode生成的“luanch.json”和“task.json”两个JSON文件中的特定字段&#xff0c;就可以实现开发环境的搭建。那么…

c# 第四课 interfaces

An interface is a contract(协定) that guarantees to a client how a class or struct will behave.When a class implements an interface(实现一个接口), it tells any potential(可能的) client “I guarantee I’ll support all the methods, properties, events, and in…

mysql+自动还原备份_Mysql 自动备份与恢复

自动备份MySql 5.0有三个方案&#xff1a;备份方案一&#xff1a; 通过 mysqldump命令,直接生成一个完整的 .sql 文件Step 1: 创建一个批处理(说明&#xff1a;root 是mysql默认用户名, aaaaaa 是mysql密码, bugtracker 是数据库名)------------mySql_backup.bat--------------…

SqlServer按时间自动生成生成单据编号

SET _tmpDateTime GETDATE() EXEC dbo.Dtw_Common_GenerateProofCode ProofType SO,WhsCodeWhsCode, ProofDate _tmpDateTime, RtnCode _tmpProofCode OUTPUT --生成的最终的CODE USE [SZVB]GO/****** Object: StoredProcedure [dbo].[Dtw_Common_GenerateProofCode]…

hive创建分区表 指定分隔符_HIVE 对于分区表的操作

CREATE EXTERNALTABLE IF NOT EXISTS data_zh(ROWKEY STRING,STATION INT,YEAR INT,MONTH INT,DAY INT,HOUR INT,MINUTE INT,)PARTITIONED BY (AGE INT)指定分区(此列并没真正存储列&#xff0c;也就是不存于你的数据中。但是如果你的数据从Oracle按年份导出&#xff0c;按照年…

Web Service 学习

1. Web services 平台的元素&#xff1a; SOAP (简易对象访问协议) UDDI (通用描述、发现及整合) WSDL (Web services 描述语言)1.1 什么是 SOAP&#xff1f; 基本的 Web services 平台是 XML HTTP。 SOAP 指简易对象访问协议 SOAP 是一种通信协议 SOAP 用于应用程序之间的通信…

java高级mysql面试题_Java高级面试题

一.基础知识&#xff1a;1)集合类&#xff1a;List和Set比较&#xff0c;各自的子类比较(ArrayList&#xff0c;Vector&#xff0c;LinkedList&#xff1b;HashSet&#xff0c;TreeSet)&#xff1b;2)HashMap的底层实现&#xff0c;之后会问ConcurrentHashMap的底层实现&#x…

转:Oracle 中union的用法

UNION 指令的目的是将两个 SQL 语句的结果合并起来,可以查看你要的查询结果. 例如: SELECT Date FROM Store_Information UNION SELECT Date FROM Internet_Sales 注意:union用法中,两个select语句的字段类型匹配,而且字段个数要相同,如上面的例子,在实际的软件开发过程,会遇到…

mysql skip_counter_mysql的三个故障解决小结

mysql使用过程中经常会遇到的三个故障&#xff0c;在此小结一下。1、MySQl服务无法启动我们在使用mysql的过程中&#xff0c;常会遇到MySQl服务无法启动&#xff0c;具体报错信息&#xff1a;Starting MySQL ERROR.The server quit without updating PID file (/[FAILED]l/mysq…

Httpd 使用ip可以访问,localhost和127.0.0.1不能访问

解决方法&#xff1a;打开/etc/httpd/conf目录下的httpd.conf文件&#xff0c; 加入 Listen 127.0.0.1:81 加入后&#xff1a; Listen xxx.xxx.xxx.xxx:81 Listen 127.0.0.1:81 其中xxx.xxx.xxx.xxx是我的ip 这样通过ip、localhost、127.0.0.1都可以访问了 转载于:https://www.…

如何将每一条记录放入到对应的范围中

编程序的时候遇到一个问题&#xff1a; 画热图 &#xff1a;计算热力值--->画网格&#xff0c;将在一定范围内定位出的mac累积计数--->编写出了定位程序&#xff0c;但是如何将每个具体的坐标值放入对应的范围&#xff08;网格&#xff09;--->因为具体坐标和网格选取…

mysql主从进行扩展_Mysql主从知识扩展部分1

一、使用mysql-proxy 快速实现mysql 集群 读写分离1、有两种方法&#xff1a;a)程序代码内部实现&#xff0c;对select操作分发到从库&#xff0c;其他到主库&#xff0c;再生产环境中应用比较广泛&#xff0c;比较知名的有DISCUZX2&#xff0c;优点性能好&#xff0c;成本低&a…

Python之异常追踪模块:traceback

正常时输出追踪信息&#xff1a; import traceback def stack():print The python stack:traceback.print_stack() from twisted.internet import reactor reactor.callWhenRunning(stack) reactor.run()#摘录来自: likebeta. “Twisted与异步编程入门”。 iBooks. 异常时输出…