【题意分析】

  给你一个可重复数集,要求从中选取一个关于异或空间线性无关的子集,使子集的权值和最大。

【解题思路】

  定义:一个有序对(S,I)称为拟阵当且仅当该有序对满足以下性质:

1.有穷性:S是一个有限集。

2.遗传性:I是S的一类具有遗传性质的非空子集族。具体地说,∀B∈I,若A⊂B,则A∈I。

3.交换性:I满足交换性。具体地说,∀A,B∈I不妨设|A|<|B|,必定存在某一元素x∈B-A,使A∪{x}∈I。

  衍生概念:

独立子集:给定拟阵M=(S,I),A称为S的独立子集当且仅当A∈I。

可扩展元素:给定拟阵M=(S,I)与独立子集A∈I,若存在x∈S但x∉A,使得A∪{x}∈I,则称x为A的可扩展元素。

  我们可以构造关于可重数集S的一个有序对M=(S,I),S所有的线性基的集合为I,M满足拟阵的性质的证明如下:

1.有穷性:显然存在有限线性基的情况下S是有限的。

2.遗传性:显然一个线性基的任意独立子集都关于异或空间线性无关。(根据线性基定义可得)

3.交换性:

  求证:∀A,B∈I不妨设|A|<|B|,必定存在某一元素x∈B-A,使A∪{x}∈I。

  证明:

    我们假设∀A,B∈I不妨设|A|<|B|,∀x∈B-A,都有A∪{x}∉I。

    于是有B与A的差集包含于A的异或空间,又显然B与A的交集包含于A的异或空间,则B包含于A的异或空间。

    所以整个B的异或空间包含于A的异或空间,又A,B均线性无关,则有|A|>|B|,与前提|A|<|B|矛盾。命题得证。

  引理:带权拟阵的贪心算法正确性证明(懒得写了QAQ,戳这里)

  这样我们证明了权值和最大的线性基可以用贪心算法构造,所以按权值排序后贪心加入即可。复杂度O(n(log2n+log2∑numberi))。

【参考代码】

 #include <algorithm>
#include <cstdio>
#include <functional>
#include <utility>
#define REP(i,low,high) for(register int i=(low);i<=(high);++i)
#define PER(i,high,low) for(register int i=(high);i>=(low);--i)
#define __function__(type) __attribute__((optimize("-O2"))) inline type
#define __procedure__ __attribute__((optimize("-O2"))) inline void
using namespace std;
typedef pair<int,long long> PIL; static int n; long long base[]; PIL a[]; __function__(bool) push(const long long&n)
{
long long x=n; PER(i,,) if((x>>i)&)
{
if(!base[i]) return base[i]=x,; x^=base[i];
}
return ;
} int main()
{
scanf("%d",&n);
REP(i,,n) scanf("%lld%d",&a[i].second,&a[i].first);
int ans=; sort(a+,a+n+,greater<PIL>());
REP(i,,n) ans+=push(a[i].second)*a[i].first;
return printf("%d\n",ans),;
}

bzoj2460题解的更多相关文章

  1. 洛谷 P4570 BZOJ 2460 [BJWC2011]元素

    Time limit 20000 ms Memory limit 131072 kB OS Linux 解题思路 看题解可知 我们将矿石按照魔法值降序排序,然后依次将矿石编号放入线性基(突然想起线代里 ...

  2. 【题解】 bzoj2460: [BeiJing2011]元素 (线性基)

    bzoj2460,戳我戳我 Solution: 线性基板子,没啥好说的,注意long long 就好了 Code: //It is coded by Ning_Mew on 5.29 #include ...

  3. 【BZOJ2460】元素(贪心,线性基)

    [BZOJ2460]元素(贪心,线性基) 题面 BZOJ Description 相传,在远古时期,位于西方大陆的 Magic Land 上,人们已经掌握了用魔 法矿石炼制法杖的技术.那时人们就认识到 ...

  4. 【BZOJ2460】[BeiJing2011]元素 贪心+高斯消元求线性基

    [BZOJ2460][BeiJing2011]元素 Description 相传,在远古时期,位于西方大陆的 Magic Land 上,人们已经掌握了用魔法矿石炼制法杖的技术.那时人们就认识到,一个法 ...

  5. 2016 华南师大ACM校赛 SCNUCPC 非官方题解

    我要举报本次校赛出题人的消极出题!!! 官方题解请戳:http://3.scnuacm2015.sinaapp.com/?p=89(其实就是一堆代码没有题解) A. 树链剖分数据结构板题 题目大意:我 ...

  6. noip2016十连测题解

    以下代码为了阅读方便,省去以下头文件: #include <iostream> #include <stdio.h> #include <math.h> #incl ...

  7. BZOJ-2561-最小生成树 题解(最小割)

    2561: 最小生成树(题解) Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 1628  Solved: 786 传送门:http://www.lyd ...

  8. Codeforces Round #353 (Div. 2) ABCDE 题解 python

    Problems     # Name     A Infinite Sequence standard input/output 1 s, 256 MB    x3509 B Restoring P ...

  9. 哈尔滨理工大学ACM全国邀请赛(网络同步赛)题解

    题目链接 提交连接:http://acm-software.hrbust.edu.cn/problemset.php?page=5 1470-1482 只做出来四道比较水的题目,还需要加强中等题的训练 ...

随机推荐

  1. charles之抓取浏览器https请求

    用charles抓取浏览器https的包时,请求显示为unknown,且请求和响应数据乱码,本篇介绍如何抓取正常响应的https请求 目录 1.安装charles 2.安装证书.添加域名 3.抓包 1 ...

  2. centos6.5搭建禅道

    linux用一键安装包 简介:本文介绍如何在linux下面使用禅道一键安装包搭建禅道的运行环境. 一.安装 二.如何访问数据库 linux一键安装包内置了XXD.apache, php, mysql这 ...

  3. 20190922 On Java8 第二十一章 数组

    第二十一章 数组 一等对象 对象数组和基元数组在使用上是完全相同的.唯一的不同之处就是对象数组存储的是对象的引用,而基元数组则直接存储基本数据类型的值. 多维数组 Array.deepToString ...

  4. ElasticSearch 基础 2

    ================================== 高级查询 =========================== ========== 子条件查询 =========== _sc ...

  5. sql中的isnull

    ISNULL 使用指定的替换值替换 NULL. 语法ISNULL ( check_expression , replacement_value ) 参数check_expression 将被检查是否为 ...

  6. Java核心技术

    [Java核心技术36讲]1.谈谈你对Java平台的理解 2.Exception和Error有什么区别 3.谈谈final.finally.finalize有什么不同?4.强引用.软引用.弱引用.虚引 ...

  7. Buses and People CodeForces 160E 三维偏序+线段树

    Buses and People CodeForces 160E 三维偏序+线段树 题意 给定 N 个三元组 (a,b,c),现有 M 个询问,每个询问给定一个三元组 (a',b',c'),求满足 a ...

  8. Dijkstra经典算法注意点

    Dijkstra经典算法注意点 前言 迪杰斯特拉算法,经典模板如下: void dij(int s) { for(int i=1; i<=n; i++) dis[i]=road[s][i]; v ...

  9. 使用IP在局域网内访问System.Net.HttpListenerException:“拒绝访问。”

    记录一下,自己写的程序之前运行没有遇到这个问题,突然遇到这个问题,找了一圈没有找到有效的解决方案,到最后发现,以管理员身份运行程序即可.简单记录一下. 还有就是 .UseUrls("http ...

  10. java 快速开发平台 有代码生成器 springmvc SSM后台框架源码

    .   权限管理:点开二级菜单进入三级菜单显示 角色(基础权限)和按钮权限      角色(基础权限): 分角色组和角色,独立分配菜单权限和增删改查权限.      按钮权限: 给角色分配按钮权限.2 ...