线性基
D_Bamboo_
我不懒,只是不知道填什么
展开
-
bzoj 2844-线性基
题目链接题意给定n个数以及一个数q,将这n个数的所有子集(可以为空)的异或值从小到大排序得到序列B(这样B内就有2^n 个 元素),求出q在序列B中第一次出现的下标,答案对10086取模(默认q一定存在)。思路首先有一个定理:B数列中每个数字出现次数都是2^(n-cnt),cnt为线性基的大小。知道了每个不同的数字都是2 ^(n-cnt)个后,只需要知道q在B里的排名就可以算出答案:2 ^...原创 2019-12-19 18:24:14 · 175 阅读 · 0 评论 -
bzoj 2115 线性基
题目链接题意给一个n个顶点m条边的无向带权图,求从1到n的一条路径上的最大异或和。思路从1到n的一条路径上,没有要求点各异、边各异,所以根据贪心的思想,如果有环的话,从1到n上的路径上的一个顶点,走过这个环再回到这个顶点,可能使异或值变大,所以遍历这些环,如果能使异或值增加的就走,最后可以得到最大异或值。这里用线性基求一个最小的 形成最大异或值 的集合。#include <bits...原创 2019-12-19 16:39:51 · 108 阅读 · 0 评论 -
线性基基础问题
题目链接题意给n个数,每次询问所有数的异或和第k小。思路这是关于线性基的一个问题,将所有数建立成一个线性基数组,讲所有线性基中不为0的数从低到高位与k的二进制的低位到高位对应,将所有k的二进制位上不为0的与之对应的线性基异或和就是第k小。大佬的博客#include <bits/stdc++.h>using namespace std;const int maxn = 1...原创 2019-12-18 16:16:19 · 147 阅读 · 0 评论