zoukankan      html  css  js  c++  java
  • P3812 【模板】线性基


    P3812 【模板】线性基



    时间限制 1.00s
    内存限制 250.00MB


    题目背景


    这是一道模板题。


    题目描述


    给定\(n\)个整数(数字可能重复),求在这些数中选取任意个,使得他们的异或和最大。


    输入格式

    第一行一个数\(n\),表示元素个数

    接下来一行\(n\)个数


    输出格式


    仅一行,表示答案。


    输入输出样例


    输入 #1

    2
    1 1
    

    输出 #1

    1
    

    说明/提示

    \(1 \leq n \leq 50, 0 \leq S_i \leq 2 ^ {50}\)



    推荐jklover线性基


    代码


    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #include<algorithm>
    using namespace std;
    #define ll long long
    const int N=50+5;
    ll a[N]; 
    void Insert(ll x){
    	for(int i=62;~i;--i)
    		if(x&(1ll<<i)){
    			if(!a[i]){ a[i]=x; return ; }
    			x^=a[i];
    		}
    }
    ll Query(){
    	ll res=0;
    	for(int i=62;~i;--i)
    		res=max(res,res^a[i]);
    	return res;
    }
    int main(){
    	int n;
    	scanf("%d",&n);
    	while(n--){
    		ll x; scanf("%lld",&x);
    		Insert(x);
    	}
    	printf("%lld",Query());
    	return 0;
    }
    
  • 相关阅读:
    软件工程
    ROR
    全息技术(Holographic technique)
    VR技术、AR技术、MR技术
    人工智能(AI)
    机器学习(Machine Learning)
    hdoj Scaena Felix
    周赛题解
    Good Luck in CET-4 Everybody!(博弈)
    Paths on a Grid(规律)
  • 原文地址:https://www.cnblogs.com/Potrem/p/Luogu_P3812.html
Copyright © 2011-2022 走看看