当前位置: 首页 > news >正文

网站产品使用说明书怎么做网页设计培训

网站产品使用说明书怎么做,网页设计培训,如何做网站推广优化,宁波随身云网络科技有限公司最长异或路径 题目描述 给定一棵 n n n 个点的带权树,结点下标从 1 1 1 开始到 n n n。寻找树中找两个结点,求最长的异或路径。 异或路径指的是指两个结点之间唯一路径上的所有边权的异或。 输入格式 第一行一个整数 n n n,表示点数…

最长异或路径

题目描述

给定一棵 n n n 个点的带权树,结点下标从 1 1 1 开始到 n n n。寻找树中找两个结点,求最长的异或路径。

异或路径指的是指两个结点之间唯一路径上的所有边权的异或。

输入格式

第一行一个整数 n n n,表示点数。

接下来 n − 1 n-1 n1 行,给出 u , v , w u,v,w u,v,w ,分别表示树上的 u u u 点和 v v v 点有连边,边的权值是 w w w

输出格式

一行,一个整数表示答案。

样例 #1

样例输入 #1

4
1 2 3
2 3 4
2 4 6

样例输出 #1

7

提示

最长异或序列是 1 , 2 , 3 1,2,3 1,2,3,答案是 7 = 3 ⊕ 4 7=3\oplus 4 7=34

数据范围

1 ≤ n ≤ 100000 ; 0 < u , v ≤ n ; 0 ≤ w < 2 31 1\le n \le 100000;0 < u,v \le n;0 \le w < 2^{31} 1n100000;0<u,vn;0w<231
插入
在这里插入图片描述

代码:

//每条路径 <a,b> 的 xor 和转化成 “(a 到根的 xor 和) xor (b 到根的 xor 和)”
#include<bits/stdc++.h>
using namespace std;
struct node{int left=0,right=0;
}root;
vector<node> trie;
vector<int> a[100001],b[100001];//连接情况记录在a数组,权重情况记录在b数组
int yihuo[100005];//搜索异或值的结果
//通过dfs搜出所有节点到根节点的异或值
void dfs(int x,int y){//x代表节点,y代表当前的异或值是多少for(int i=0;i<a[x].size();i++){yihuo[a[x][i]]=y^b[x][i];//当前异或值异或连接到的节点的权重dfs(a[x][i],yihuo[a[x][i]]);//继续往下搜}
}
//生成01字典树
void build(int x){//记录各个节点的左右节点编号,这里默认左节点储存0,右节点储存1int fa=0,len;//每次重新输入一个异或值生成01树的时候fa都要重新置0for(int i=(1<<30);i>0;i>>=1){//边的权值最大为2的31次方,说明边权的异或最大值也是len=trie.size();//树的节点if(x&i){//当前位为1,遍历右边的if(trie[fa].right==0){//没有右节点trie[fa].right=len;// cout<<fa<<" right "<<len<<endl;trie.push_back(root);//把空节点push_back进去fa=len;//下一次的父节点为当前的节点编号}else fa=trie[fa].right;    }else{//当前位为0,遍历左边的if(trie[fa].left==0){//没有左节点trie[fa].left=len;//给左节点编号// cout<<fa<<" left "<<len<<endl;trie.push_back(root);fa=len;}else fa=trie[fa].left;}}
}
int jisuan(int x){int ans=0,fa=0;cout<<x<<endl;for(int i=(1<<30);i>0;i>>=1){//i的初始值为1<<30是因为边的权值最大为2的31次方if(x&i){//当前位为1,由于是要求最长的异或路径,所以需要遍历左边的0,才能使得当前值为1if(trie[fa].left){ans+=i;// cout<<"left "<<ans<<" "<<trie[fa].left<<endl;fa=trie[fa].left;}else fa=trie[fa].right;}else{//当前位为0,由于是要求最长的异或路径,所以需要遍历右边的1,才能使得当前值为1if(trie[fa].right){ans+=i;// cout<<"right "<<ans<<" "<<trie[fa].right<<endl;fa=trie[fa].right;}else fa=trie[fa].left;}}// cout<<x<<" "<<ans;return ans;
}
void lesson1(){int n,x,y,z,ans=0;cin>>n;for(int i=1;i<n;i++){cin>>x>>y>>z;a[x].push_back(y);b[x].push_back(z);}dfs(1,0);trie.push_back(root);//0号节点,其左节点为0号节点,右节点为0号节点for(int i=1;i<=n;i++){build(yihuo[i]);// cin>>x;// cout<<x<<endl;// build(x);       }for(int i=1;i<=n;i++){ans=max(ans,jisuan(yihuo[i]));}cout<<ans<<endl;   // for(int i=1;i<=n;i++){//     cout<<i<<":";//     for(int j=0;j<a[i].size();j++)cout<<a[i][j]<<","<<b[i][j]<<" ";//     cout<<endl;// }// for(int i=1;i<=n;i++)cout<<yihuo[i]<<" ";//根据题目样例得到0 3 7 5// for(int i=0;i<trie.size();i++){//     cout<<i<<":"<<trie[i].left<<","<<trie[i].right<<endl;// }
}
int main(){lesson1();return 0;
}
http://www.hyszgw.com/news/25536.html

相关文章:

  • 网站做推广怎么收费广西壮族自治区人民医院
  • 网站建设 案例重庆森林电影简介
  • 荆门做网站电子报刊的传播媒体是什么
  • 正版电子书做的最好的网站深圳开发公司网站建设
  • 网站设计要注意什么福州百度首页优化
  • 凡科做的网站提示证书错误宁波seo链接优化
  • 2012年网站设计方法网络营销比较成功的企业
  • 网站关键字标签网络服务合同
  • 手机主页网址大全水平优化
  • 用dw做购票网站模板龙岗网络公司
  • wordpress面邮箱注册郑州seo优化外包顾问
  • 手机在线做ppt的网站网络优化seo薪酬
  • 做海报的素材网站怎么让网站快速收录
  • 公司网站设计主页部分怎么做正规的网店培训机构有哪些
  • 北京做网站公司哪家好如何优化关键词
  • 专做健身餐的网站小吃培训
  • 爱站工具包的模块有哪些个人主页网页设计模板
  • vs做网站怎么把网页改为自适应大小sem是什么?
  • 哈尔滨住房和城乡建设厅官方网站百度关键词排名推广工具
  • 做短视频网站百度视频免费高清影视
  • 上海网站论坛建设口碑营销5t理论
  • wordpress 在线安装关键词优化是怎样收费的
  • 文档做网站百度一下你就知道首页
  • 虎门做外贸网站营销软文小短文
  • 高明网站建设哪家好产品软文范例
  • 网站设计图能用ps做么泉州百度推广排名优化
  • 长沙百度网站优化百度竞价排名怎么做
  • node做网站海南乐秀同城群软件下载
  • 主机服务器网站 怎么做家居seo整站优化方案
  • 提卡网站怎么做整合营销传播的明显特征是