没有什么前言?直接进入正题qwq

俩俩异或 求最值:

建trie树

O(n)枚举每个数找这个数的最值,每次反走就成,还可以剪枝一波(如果在某位已经小于ans显然可以直接return?

void Insert(int val)
{
    ;
    <<;i>=;i>>=)
    {
        :;
        if(!ch[x][to]) ch[x][to]=++node;
        x=ch[x][to];
    }
}
//建树,懒得说

int Que(int val)
{
    ,bs=;
    <<;i>=;i>>=)
    {
        :;
        ]) x=ch[x][to^],bs+=i;
        else x=ch[x][to];
    }
    return bs;
}
//查询,懒得说

;
;i<=k;i++)
{
    Ans=max(Ans,Que(A[i]));
    Insert(A[i]);//就想说下因为a^b b^a结果一样所以我们可以边查询边加点,over
}
cout<<Ans<<endl;

//对了这个并不是自己的代码鸭...有时间自己坐下典型题然后把自己代码放上来qwq

代码在这儿!

俩俩或 求最值:

还没懂,在网上也没找到什么学习笔记?只能硬啃今天考试的代码尝试理解QAQ等我理解了再回来写QAQ

ummm先推翻我的一错误想法,是这样的:

我选一个最大的,肯定不会更劣,所以我就选最大的然后再O(n)算一遍它和每个数的或起来的值就可以了

然后成功hack掉了:110010 100001 011110 此时显然选后俩更优不应该选max

所以还是乖乖学正解去趴qwq

;i<=k;i++) f[A[i]]=;//A[i]:原来的所有数
;p<=(<<);p<<=)
    <<)-;i>=;i--);//如果能构出i 并且 i和p有交集 那么i^p就也能构造出来?ummm还是没懂x
;
;i<=k;i++)
{
    ;
    <<;p>=;p>>=)
        if(!(A[i]&p))if(f[bs|p]) bs|=p;
    Ans=max(Ans,bs|A[i]);
}
cout<<Ans<<endl;

先放个保证正解的代码qwq

然而事实是这个代码我还是没懂啊...没办法先放上来然后有空想想在NOIp前回来填坑趴QAQ

俩俩并 求最值:

从高位到低走,若这位有>=2个1则可以是1然后暴力把所有这位不是1的数全删了,直接暴力走一遍

; i<=k; ++i)a[].push_back(atk[i]);
; p; --p)
{
    ;
    ; i<tot; ++i)) ++cnt;
    ); i<tot; ++i)) a[p-].push_back(a[p][i]);
            ; i<tot; ++i)a[p-].push_back(a[p][i]);
}
].size(), cnt=;
; i<tot; ++i)][i]&)++cnt;
)
{
    cnt=;
    ; i<tot; ++i)
        ) break;
        else
            ][i]&)
            {
                ]=a[][i];
                ]&=a[][i];
                ++cnt;
            }
}
]=a[][]&a[][];
printf(]);

还是比较好理解的趴我觉得?就懒得放注释了qwq

多个异或 求最值(还没学会qwq待补充):

线性基经典问题了,但是我线性基还没学会?等学会了把主要思想放线性基学习笔记里这里就放个模板代码趴qwq

位运算求最值 学习笔记 (待补充QAQ)的更多相关文章

  1. [note]一类位运算求最值问题

    [note]一类位运算求最值问题 给定一些数,让你从中选出两个数a,b,每次询问下列中的一个 1.a and b的最大值 2.a xor b的最大值 3.a or b的最大值 神仙们都是FWT,小蒟蒻 ...

  2. STL库学习笔记(待补充QAQ

    几百年前就说要学STL了然后现在还没动呢QAQ总算还是克服了懒癌决定学下QAQ 首先港下有哪几个vector listset map stack queue,大概就这些? 然后因为有几个基本操作每个都 ...

  3. C语言学习笔记之位运算求余

    我们都知道,求一个数被另一个数整除的余数,可以用求余运算符”%“,但是,如果不允许使用求余运算符,又该怎么办呢?下面介绍一种方法,是通过位运算来求余,但是注意:该方法只对除数是2的N次方幂时才有效. ...

  4. c语言小技巧:C语言学习笔记之位运算求余

    我们都知道,求一个数被另一个数整除的余数,可以用求余运算符”%“,但是,如果不 允许使用求余运算符,又该怎么办呢?下面介绍一种方法,是通过位运算来求余,但是注 意:该方法只对除数是2的N次方幂时才有效 ...

  5. 通过位运算求两个数的和(求解leetcode:371. Sum of Two Integers)

    昨天在leetcode做题的时候做到了371,原题是这样的: 371. Sum of Two Integers Calculate the sum of two integers a and b, b ...

  6. 用位运算实现四则运算之加减乘除(用位运算求一个数的1/3) via Hackbuteer1

    转自:http://blog.csdn.net/hackbuteer1/article/details/7390093 ^: 按位异或:&:按位与: | :按位或 计算机系统中,数值一律用补码 ...

  7. 莫队学习笔记(未完成QAQ

    似乎之前讲评vjudge上的这题的时候提到过?但是并没有落实(...我发现我还有好多好多没落实?vjudge上的题目还没搞,然后之前考试的题目也都还没总结?天哪我哭了QAQ 然后这三道题我都是通过一道 ...

  8. Python运算和和表达式 学习笔记

    光荣之路Python公开课第二讲 Python运算符和表达式. 一 Python运算符 Python运算符包括 算术运算符,赋值运算符,位运算符,逻辑运算符,身份运算符,成员运算符. 1. 算术运算符 ...

  9. hdu 4336 Card Collector (概率dp+位运算 求期望)

    题目链接 Card Collector Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Othe ...

随机推荐

  1. Python爬虫学习笔记-1.Urllib库

    urllib 是python内置的基本库,提供了一系列用于操作URL的功能,我们可以通过它来做一个简单的爬虫. 0X01 基本使用 简单的爬取一个页面: import urllib2 request ...

  2. linux 停止对某个端口的监听

    1.通过"netstat -anp" 来查看哪些端口被打开. 2.关掉对应的应用程序,则端口就自然关闭了,如:"kill -9 PID" (PID:进程号)

  3. Kafka(一)-- 初体验

    一.概念 Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据. 这种动作(网页浏览,搜索和其他用户的行动)是在现代网络上的许多社会功能的一个关键因素. 这些 ...

  4. N76E003的学习之路(ADC简单小例程篇)

    N76E003内嵌12位逐次逼近寄存器型(SAR)的模拟数字转换器(ADC).模数转换模块负责将管脚上的模拟信号转换为12位二进制数据.N76E003支持8通道单端输入模式.内部带隙电压(band-g ...

  5. VS05 VS08 VS10 工程之间的转换

    VS05 VS08 VS10 工程之间的转换 安装了VS2010后,用它打开以前的VS2005项目或VS2008项目,都会被强制转换为VS2010的项目,给没有装VS2010的电脑带来不能打开高版本项 ...

  6. 《计算机图形学》2.1.4 彩色CRT监视器

    CRT监视器利用能发射不同颜色光的荧光层的组合来显示彩色图形.不同荧光层的发射光组合起来,可以生成一种按其比例而定的可见颜色. 显示彩色图形的一种方法是在屏幕上涂上多层不同的荧光粉.发射颜色由电子束在 ...

  7. iptables 指令语法

    iptables 指令 语法: iptables [-t table] command [match] [-j target/jump] -t 参数用来指定规则表,内建的规则表有三个,分别是:nat. ...

  8. WP8.1学习系列(第七章)——应用选项卡Pivot交互UX

    “应用选项卡”模式用于用户经常在中间导航的多个 UI 页面.如果你的应用基于单个主题(例如,电影.棒球等),该模式尤其有用.每页都将为用户显示与该应用呈现的整体数据相关的一些内容.“应用选项卡”模式可 ...

  9. 分布式实时日志系统(二) 环境搭建之 flume 集群搭建/flume ng资料

    最近公司业务数据量越来越大,以前的基于消息队列的日志系统越来越难以满足目前的业务量,表现为消息积压,日志延迟,日志存储日期过短,所以,我们开始着手要重新设计这块,业界已经有了比较成熟的流程,即基于流式 ...

  10. 原生js--应用程序存储和离线web应用

    1.应用程序缓存和其它存储方式的区别: a.不像localStorage和sessionStorage那样只存储web应用程序的数据,它将应用程序自身存储起来. b.不像浏览器缓存一样会过期或者被用户 ...