AT3913-XOR Tree【状压dp】

技术AT3913-XOR Tree【状压dp】 AT3913-XOR Tree【状压dp】正题
题目链接:https://www.luogu.com.cn/problem/AT3913题目大意
给出一棵

异或树

正题

链接到:https://www.luogu.com.cn/problem/AT3913

题目大意

给定一个有边权重的树,你可以选择一个链来一次异或所有有相同值的边,并寻找最少的操作数,这样所有边的权重都是\(0\)。

\(2\leq n\leq 10^5,0\leq w16\)

解题思路

一条边的权重可以看作是两个连通点权重的异或,那么我们就可以把这条边看作是点权重。

链的异或可以同时成为最后一个值的异或。

那么问题就变成了给出\(n\)个数字。您可以同时将两个数字与任意一个数字进行异或运算,并寻求最小运算次数,使它们都变成\(0\)。

那么很明显,我们直接异或最优的那个,现在最多只剩下\(16\)个不同的数字了。

考虑形状压力\(dp\),注意如果一个集合可以运算到\(0\),那么这个集合中所有数字的异或和必须是\(0\),因为无论序列如何运算,序列的异或和都不会改变。

那么从理论上讲,如果有\(x\)个数,那么我们运算次数的上限就是\(x-1\),但是如果我们能把集合\(S\)分成两个集合\(T,S-T\)并且这两个集合的异或和是\(0\),那么就变成\。

让\(f_S\)表示最多可以分成多少集\(S\),然后可以转移\ (o (3 {16}) \)。

复杂性:\ (o (n 3 {16}) \)

code

#includecstdio

# includecstring

#包括算法

使用命名空间标准;

const int N=1e5 10,M=16

int n,ans,a[N],v[M],c[1M],f[1M];

int main()

{

scanf('%d ',n);

for(int i=1,x,y,w;在;I){ 0

scanf('%d%d%d ',x,y,w);

a[x]^=w;a[y]^=w;

}

for(int I=0;在;[a[I]];

int MS=(116);

memset(f,0xcf,sizeof(f));

for(int s=1;短信;s)

for(int I=0;i16(一)

if((si)1){ 0

c[s]=c[s-(1i)]^i;

if(!c[s])f[s]=0;

打破;

}

int S=0;f[0]=0;

for(int I=1;i16(一)

ans=(v[i] 1)/2,S |=((v[I]1)I);

if(!s)返回printf('%d\n ',ans)0;

for(int s=1;短信;s){ 0

如果(c[s])继续;

for(int t=(s-1)s;t=(s^t);t=(t-1)s)

f[s]=max(f[s],f[t]f[s^t[1]);

}

printf('%d\n ',ans-f[S]-1);

返回0;

}

/*

0 1 5

1 2 3

2 3 5

*/

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/151779.html

(0)

相关推荐

  • 怎么使用trim_galore对NGS数据进行质量过滤

    技术怎么使用trim_galore对NGS数据进行质量过滤怎么使用trim_galore对NGS数据进行质量过滤,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题

    攻略 2021年11月10日
  • 美国服务器如何选择合适服务商

    技术美国服务器如何选择合适服务商对于博客作者和小型网站而言,为其网站提供合适的网络服务器非常重要。这是为了确保他们的网站随时能够访问。各种各样的供应商这为购买者提供了足够的灵活性来做出正确的选择。然而,如何选择合适的服务

    礼包 2021年10月26日
  • Jupyter Notebook如何适应数据科学的发展方向

    技术Jupyter Notebook如何适应数据科学的发展方向本篇文章为大家展示了Jupyter Notebook如何适应数据科学的发展方向,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有

    攻略 2021年12月4日
  • ,转载)ffmpe---实现将视频存储为图片jpg

    技术,转载)ffmpe---实现将视频存储为图片jpg (转载)ffmpe---实现将视频存储为图片jpg原文出自:https://images1.tqwba.com/20211201/xuqcjtf4

    礼包 2021年12月1日
  • 使用代理ip为什么要选择高质量正规动态ip

    技术使用代理ip为什么要选择高质量正规动态ip这篇文章主要讲解了“使用代理ip为什么要选择高质量正规动态ip”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“使用代理ip为什

    攻略 2021年11月2日
  • 好用的开源JavaScript图表库有哪些

    技术好用的开源JavaScript图表库有哪些这篇文章主要介绍好用的开源JavaScript图表库有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1、 Chart.jsChart.js 是一个

    攻略 2021年10月30日