BZOJ 4568 倍增维护线性基

在树的路径上选取一些点 使得这些点权xor后的结果最大
思路:
这里写图片描述
时限60s 59696ms卡过去了哈哈哈

//By SiriusRen
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
typedef long long ll;
const int N=20005;
ll Temp[128],ans;
int n,q,first[N],next[N],v[N],tot,xx,yy,deep[N];
void add(int x,int y){v[tot]=y,next[tot]=first[x],first[x]=tot++;}
struct Node{int anc,num;ll eli[62];}fa[N][16],G[N],jy;
int Gauss(Node a,Node b){int num=a.num+b.num,flag=1;for(int i=1;i<=a.num;i++)Temp[i]=a.eli[i];for(int i=1;i<=b.num;i++)Temp[i+a.num]=b.eli[i];for(int i=60,j;~i;i--){for(j=flag;j<=num;j++)if(Temp[j]&(1ll<<i))break;if(j==num+1)continue;swap(Temp[flag],Temp[j]);for(int k=1;k<=num;k++)if(k!=flag&&Temp[k]&(1ll<<i))Temp[k]^=Temp[flag];flag++;}return flag-1;
}
void dfs(int x){for(int i=1;i<=15;i++){fa[x][i].anc=fa[fa[x][i-1].anc][i-1].anc;fa[x][i].num=Gauss(fa[x][i-1],fa[fa[x][i-1].anc][i-1]);for(int j=1;j<=fa[x][i].num;j++)fa[x][i].eli[j]=Temp[j];}for(int i=first[x];~i;i=next[i]){if(v[i]!=fa[x][0].anc){fa[v[i]][0].anc=x,deep[v[i]]=deep[x]+1;fa[v[i]][0].num=Gauss(G[v[i]],G[x]);for(int j=1;j<=fa[v[i]][0].num;j++)fa[v[i]][0].eli[j]=Temp[j];dfs(v[i]);}}
}
void LCA(int x,int y){if(deep[x]<deep[y])swap(x,y);for(int i=15;~i;i--)if(deep[x]-(1<<i)>=deep[y]){jy.num=Gauss(jy,fa[x][i]);for(int j=1;j<=jy.num;j++)jy.eli[j]=Temp[j];x=fa[x][i].anc;}if(x==y){jy.num=Gauss(jy,G[x]);for(int j=1;j<=jy.num;j++)jy.eli[j]=Temp[j];return;}for(int i=15;~i;i--){if(fa[x][i].anc!=fa[y][i].anc){jy.num=Gauss(jy,fa[x][i]);for(int j=1;j<=jy.num;j++)jy.eli[j]=Temp[j];jy.num=Gauss(jy,fa[y][i]);for(int j=1;j<=jy.num;j++)jy.eli[j]=Temp[j];x=fa[x][i].anc,y=fa[y][i].anc;}}jy.num=Gauss(jy,fa[x][0]);for(int j=1;j<=jy.num;j++)jy.eli[j]=Temp[j];jy.num=Gauss(jy,fa[y][0]);for(int j=1;j<=jy.num;j++)jy.eli[j]=Temp[j];
}
int main(){memset(first,-1,sizeof(first));scanf("%d%d",&n,&q);for(int i=1;i<=n;i++)scanf("%lld",&G[i].eli[1]),G[i].num=1;for(int i=1;i<n;i++)scanf("%d%d",&xx,&yy),add(min(xx,yy),max(xx,yy));deep[1]=1,dfs(1);for(int i=1;i<=q;i++){scanf("%d%d",&xx,&yy);jy.num=ans=0,LCA(xx,yy);for(int i=1;i<=jy.num;i++)ans^=jy.eli[i];printf("%lld\n",ans);}
}

这里写图片描述

转载于:https://www.cnblogs.com/SiriusRen/p/6532066.html

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

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

相关文章

代码android点击效果,GitHub - likaiyuan559/TouchEffects: Android View点击特效TouchEffects,几行代码为所有控件添加点击效果...

Android 点击特效TouchEffectsTouchEffects能够帮助你更快速方便的增加点击时候的效果&#xff0c;TouchEffects的目标是打造一个稳定、全面、且能更方便的自定义及个性化的一款点击效果框架。功能特点&#xff1a;只需要几行代码便能为全局的View加上点击效果支持多种点击效果…

Linux下暴力破解工具Hydra详解

Linux下暴力破解工具Hydra详解 一、简介 Number one of the biggest security holes are passwords, as every password security study shows. Hydra is a parallized login cracker which supports numerous protocols to attack. New modules are easy to add, beside that,…

android的json解析方式,Android解析JSON方式

JSON数据格式的定义&#xff1a;JSON的全称是&#xff1a;JavaScript Object Notation&#xff0c;是一种轻量级的数据交换格式。它构建于两种结构&#xff1a;1、"名称/值" 对的集合(a collection of name / value pairs)。不同的语言中&#xff0c;它被理解为对象(…

uniapp无法使用substr_关公战秦琼------Excel、SPSS Modler和R的使用对比(下)

5. 数据可视化Excel在Excel中对数据可视化除常用的图表外&#xff0c;还有样式、迷你图等直接和实际数据来共同展示效果。另外&#xff0c;还可以与切片器、PowerView等功能结合来动态可视化。Excel中图表的类型很多&#xff0c;如常见的散点图、折线图、柱形图、饼图等&#x…

第三次预作业20155231邵煜楠:虚拟机上的Linux学习

java第三次预作业——虚拟机初体验(学习记录) 学习在笔记本上安装Linux操作系统通过老师给予的官网链接&#xff0c;下载了VirtualBox-5.1.14-112924-win和Ubuntu-16.04-desktop-amd64.iso开始按照安装&#xff0c;尽管如此&#xff0c;还是遇到来了一些问题。 -在选择虚拟机的…

miui11未升级android版本,MIUI 11稳定版正式推送,升级前你需要了解

原标题&#xff1a;MIUI 11稳定版正式推送&#xff0c;升级前你需要了解10月18日&#xff0c;MIUI官网正式宣布MIUI 11 正式推送&#xff0c;这是在小米MIX Alpha发布会之时同时推出的&#xff0c;在经过内测、公测后正式面向大众消费者推送。以下是一些您升级前需要了解的东西…

lumion自动保存_LUMION吊打MAX,轻松玩转规划渲染!

--文末获取&#xff1a;城市配景建筑模型包--大型场景渲染是LUMION渲染中难度最高的图纸首先&#xff0c;需要大量非常优质的配景包括&#xff1a;配景建筑、植物其次&#xff0c;对硬件要求也极高像这样的图纸渲染主体建筑周边需要布置大量的配景建筑没有个2080TI&#xff0c;…

在地图上 添加柱状_如何做出一份惊艳的PPT地图页?这2个字,你一定要知道!...

这篇文章&#xff0c;咱们就从一个读者私信给我的案例来说&#xff0c;就是这张PPT&#xff1a;他当时问我的问题是&#xff0c;怎么把这个表格优化的更美观&#xff1f;坦白讲&#xff0c;这是一个无解的问题&#xff0c;为什么这么说呢&#xff1f;咱们简单对这个图表分析&am…

akka与neety_Akka STM –与STM Ref和Agent一起打乒乓球

akka与neety乒乓是一个经典示例&#xff0c;其中2个玩家&#xff08;或线程&#xff09;访问共享资源–乒乓表并在彼此之间传递Ball&#xff08;状态变量&#xff09;。 使用任何共享资源&#xff0c;除非我们同步访问&#xff0c;否则线程可能会遇到潜在的死锁情况。 PingPong…

怎样调用另一个html中的元素,html – 使用DIV作为另一个元素的背景

这里我用2个div做了一个例子&#xff1a;> .content,包含前端所需的一切> .background – 包含文本,图像和背景中的所有其他内容要将一个div包装在另一个div上(制作叠加层),你必须将它们放入相同的元素中,在本例中它是#wrapper div.放置位置&#xff1a;包装的相对宽度/高…

在running android lint期间发生了内部错误.,Eclipse出现quot;Running Android Lint has encountered a problemquot...

近期打开Eclipse的时候&#xff0c;总是发生这种一个错误&#xff1a;"Running Android Lint has encountered a problem"。截图例如以下&#xff1a;。可是Eclipse能够正常执行程序。不会造成其它影响。可是每次打开Eclipse时。总是看到这个警告&#xff0c;心情会非…

idea 导出war包_使用IDEA实现远程代码DEBUG调试教程详解

我们在使用 IDEA DEBUG调试代码的时候&#xff0c;常常见到控制台会输出一句这样的话&#xff1a;「Connected to the target VM, address: 127.0.0.1:62981, transport: socket」&#xff0c;所以即使代码不在本地运行&#xff0c;只要JVM打开调试模式&#xff0c;并且网络能够…

鸿蒙os2.0发布回放,华为HarmonyOS 2.0系统发布会内容大全 鸿蒙os6月2日直播回放地址入口...

华为鸿蒙os6月2日直播回放在哪里看&#xff1f;华为HarmonyOS 2系统发布会说了些啥&#xff1f;HarmonyOS 2系统在6月2日正式发布了&#xff0c;之前预约过的小伙伴现在就可以更新体验了&#xff0c;这次发布将会对安卓系统一个重大的革新&#xff0c;将会彻底颠覆之前的安卓系…

python中当地时间_R 与 Python 中与时间相关内容的梳理

约万字长文预警&#xff0c;如果你没时间&#xff0c;就不用看了&#xff0c;这就是一个梳理的文章&#xff0c;方便我后来找资料。因为工作的关系&#xff0c;近期需要梳理一些 Python 的知识(可能有小伙伴知道了&#xff0c;LI-6800 搞了个大动作&#xff0c;支持 Python 编程…

JavaOne 2015:为JDK 9做准备– blog @ CodeFX

JavaOne 2015看到了Project Jigsaw团队关于Java 9中的模块化的一系列讨论 。它们都是非常有趣的&#xff0c;并且充满了宝贵的信息&#xff0c;我敦促每个Java开发人员都注意它们。 除此之外&#xff0c;我想给社区一种搜索和引用它们的方法&#xff0c;因此我在这里总结一下&…

华为oj----iNOC产品部-杨辉三角的变形 .

此题提供三种方法&#xff0c;第一种&#xff0c;一开始就能想到的&#xff0c;设置一个足够大的数组存储生成的杨辉三角&#xff0c;然后进行判断就行,此方法参见&#xff1a;华为oj iNOC产品部-杨辉三角的变形 另一种方法是采用递归&#xff1a; 三角形的每行的个数为2*n-1,n…

java 短路判断_java中和的区别(|和|同理)

在java的基础面试题中肯定有这个问题&#xff1a;&和&&的区别&#xff1f;这个问题很好回答&#xff0c;核心思想就是一个不短路一个短路的问题。首先说下&&#xff0c;1、它可以表示二进制中的位运算分析&#xff1a;二元操作符&#xff0c;操作两个二进制数据…

不属于计算机完成科学特点的是,2020年9月网络教育统考计算机应用基础模拟题试卷4...

2020年9月网络教育统考计算机应用基础模拟题试卷4一、单选题1.______是第四代计算机的典型代表。A.微型机B.超小型机C.巨型机D.大中型机答案&#xff1a;A2.个人计算机又称PC机&#xff0c;这种计算机属于______。A.微型计算机B.小型计算机C.超级计算机D.巨型计算机答案&#x…

苹果13系统锁屏延迟_iPhone 11 锁屏出现延迟是怎么回事?

正常情况下&#xff0c;按下 iPhone 电源键&#xff0c;屏幕会立即息灭&#xff0c;有不少用户反馈按下锁屏键后&#xff0c;会有片刻的延迟才能关屏&#xff0c;虽然延迟并不是很长&#xff0c;但会给人造成“卡顿”的假象。很多人把原因归结为 iOS 13 系统&#xff0c;其实并…

html中img引入git动画,用Github五万颗星的css动画库, 为网页增添趣味性

css动画可以做到什么程度?Github上有一个非常优秀的动画项目, 足足有5万颗星!在线效果展示:animate整个项目只有一个css文件, 使用方法也非常简单, 只要给相应的元素添加class属性即可通过悬浮产生动画的小DemoAnimate的动画展示body, html{margin: 0;padding: 0;}#title{marg…