题目描述 给你一个无向图,有n个顶点和m条边,每条边上都有一个非负权值. 我们称一个三元组(u,v,s)是有趣的,当且仅当对于u,v,有一条从u到v的路径(可以经过相同的点和边多次),其路径上的权值异或和为 s .对于一条路径,如果一条边经过了多次,则计算异或和时也应计算多次.不难证明,这样的三元组是有限的. 计算所有有趣的三元组中s的和对于1e9+7的模数 题解 不知道线性基是什么东西的可以看看蒟蒻的总结 线性基神仙题 首先异或和肯定得用线性基 然后路径肯定得找出所有环 那么先dfs一遍,找出…
Codeforces 题目传送门 & 洛谷题目传送门 一道还算不套路的线性基罢-- 首先由于图不连通,并且不同连通块之间的点显然不可能产生贡献,因此考虑对每个连通块单独计算贡献.按照 P4151 的套路可以对每个连通块先找出它的一棵生成树,记 \(d_u\) 为 \(u\) 到生成树树根上所有边权值的异或和.对于生成树上所有非树边 \((u,v,w)\),\(u\to v\) 在树上的路径与这条边本身显然会形成一个环,且环的权值为 \(d_u\oplus d_v\oplus w\),我们将这个环…
题意 求所有点对\(u,v\),\(u\)到\(v\)所有不同的异或路径的异或值之和,对\(10^9+7\)取模 题解 求出一个dfs树,那么\(u\)到\(v\)的路径一定是树上路径异或一些环.这些环只可能是返祖边构成的,我们把所有环存到线性基里. 先把每一位拆开,答案变为:\(\sum_{i = 0}^{60} 2^i f(i)\),其中\(f(i)\)表示所有满足要求的路径中,第\(i\)位是\(1\)的路径个数 考虑\(f(i)\)怎么求.枚举\(u\)和\(v\),我们假设dfs的时候…
题目描述 输入 第一行包含两个整数N和 M, 表示该无向图中点的数目与边的数目. 接下来M 行描述 M 条边,每行三个整数Si,Ti ,Di,表示 Si 与Ti之间存在 一条权值为 Di的无向边. 图中可能有重边或自环. 输出 仅包含一个整数,表示最大的XOR和(十进制结果),注意输出后加换行回车. 样例输入 5 7 1 2 2 1 3 2 2 4 1 2 5 1 4 5 3 5 3 4 4 3 2 样例输出 6 题解 DFS树+高斯消元求线性基 首先肯定能够想到,1->n的路径一定是一条链+选…
还以为是什么非常高大上的东西花了1h不到就学好了 线性基 线性基可以在\(O(nlogx)\)的时间内计算出\(n\)个数的最大异或和(不需要相邻). 上述中\(x\)表示的最大的数. 如何实现 定义\(p[i]\)表示在二进制下从最高位开始第一个出现\(1\)的数. 当前我们将一个数插入线性基中. 如果\(x\)的最高位的\(1\)还没有被插入过,那么就在这一位上插入\(x\). 如果当前这一位被插入过,那么就异或上这一位上的数. 查询操作:从最高位上开始贪心. 如果异或这一位上的数可以让答案…
传送门 题意 给出n个数,任意个数任意数异或构成一个集合,询问第k大个数 分析 这题需要用到线性基,下面是一些资料 1.高斯消元&线性基&Matirx_Tree定理 笔记 2.关于线性基的一些理解 3.线性基 这题操作步骤如下: 1.高斯消元求n个数的线性基 2.对于每个询问,遍历a[],如果(1<<p)&k==1,那么ans^=a[cnt-p],注意这里a[]大的标号小 trick 1.如果cnt!=n,那么线性基中存在某些数异或和为0,导致k--,解释如下 原数集能…
[bzoj数据下载地址]不要谢我 先讲一下窝是怎么错的... \(MLE\)是因为数组开小了.. 看到异或和最大,那么就会想到用线性基. 如果不会线性基的可以参考一下我的学习笔记:「线性基」学习笔记and乱口胡总结 但是这一道题目需要合并线性基. 如何合并线性基? 不需要什么花里胡哨的操作,直接暴力插入就可以了. void merge(xxj &x, xxj y) { for (int i = BIT; ~i; i --) if (y.p[i]) x.ins(y.p[i]); } 代码中的\(x…
题目就不翻译了吧,应该写的很清楚了... 首先 \(,\) 不懂线性基的可以戳这里.知道了线性基\(,\) 但是从来没有写过线性基和图论相结合的\(,\) 可以戳这里. 好\(,\) 点完了这些前置技能之后,我们就可以来愉快的切题啦! 正片\(:\) 类比\([WC\) \(2011]\) 最大\(xor\)和路径\(,\) 我们肯定要找环\(,\) 找完环后再用环去构造线性基\(,\) 因为还是那句话嘛\(:\) 任何一条复杂路径\(,\) 都能有起始两点的一条简单路径再加上若干个环组成. 那…
Problem Description XOR is a kind of bit operator, we define that as follow: for two binary base number A and B, let C=A XOR B, then for each bit of C, we can get its value by check the digit of corresponding position in A and B. And for each digit,…
2115: [Wc2011] Xor Time Limit: 10 Sec  Memory Limit: 259 MBSubmit: 2142  Solved: 893[Submit][Status][Discuss] Description Input 第一行包含两个整数N和 M, 表示该无向图中点的数目与边的数目. 接下来M 行描述 M 条边,每行三个整数Si,Ti ,Di,表示 Si 与Ti之间存在 一条权值为 Di的无向边. 图中可能有重边或自环. Output 仅包含一个整数,表示最大…