Description

【背景介绍】
古堡,暗鸦,斜阳,和深渊……
等了三年,我独自一人,终于来到了这里……
“终焉的试炼吗?就在这里吗?”我自言自语道。
“终焉的试炼啊!就在这里啊!”我再一次自言自语道。
“这背后可能有那个东西吗?”我自言自语道。
“这背后一定有那个东西呢!”我又一次自言自语道。
我沉默着,踏上黑漆漆的索桥,小心翼翼地,拿出锋利的注入我灵魂的双剑……
“那么,我们开始吧……”我最后一次自言自语道。
【题目描述】
My soul of my sowrd!
终焉的试炼即将到来,作为一名有修养的剑士,虽然没有习得n刀流但是二刀流还是没问题的。然而我也是个剑的收藏者,家里屯着n把剑,每一把剑都有一个灵魂值a[i],由于一些剑之间可能有共鸣,所以我需要两把契合度最高的剑。据剑圣所说,两把编号为i,j剑的契合度为a[i] and a[j]。如何深得剑的灵魂呢?
注:AND 为按位与运算,先将数转成二进制,不满位数的补全0,然后成为两个长度相同的二进制数,处理的时候,两个相应的二进制位都为1,该位的结果值才为1,否则为0。例下图。
aaarticlea/png;base64,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" alt="" border="0" hspace="0" vspace="0" />
 

Input

第一行一个整数n,代表藏剑数。
第二行n个整数,第i个整数表示a[i]。

Output

输出包含一个正整数,最好的两把剑的契合度。

Sample Input

5
12 5 6 3 1

Sample Output

4
【样例解释】
5 and 6=4或者12 and 5=4或者12 and 6=4

Data Constraint

对于40%的数据 n ≤ 1,000
对于100%的数据 n ≤ 1,000,000,0 ≤ a[i] < 2^31

题目大意:给定n个数,从中挑选两个数进行&(and)运算,最大化&值并输出

题解:采取二进制高位到低位的贪心策略,即从高到低能变成1就变成1

那我们就考虑答案的倒数第i位是否可以选。

设当前ans为比第i位高的所有二进制位选择的最优情况的和,那么如果第i位能选,就必定在这n个数中至少有两个数满足:

1.当前答案中的所有二进制为1的位置,在相应的这个数中的位置也为1(即ans&a==ans);

2.这个数的二进制第i位为1(即a&(2^(i-1)==(2^(i-1)))。

所以,我们只需从高位向低位扫一遍就可以了。

时间:O(30*n)

空间:n

还有不懂的读者手推即可

#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std; const int maxn=1e6+;
int n,ans;
int a[maxn];
inline int read()
{
char ch=getchar();
int s=,f=;
while (!(ch>=''&&ch<='')) {if (ch=='-') f=-;ch=getchar();}
while (ch>=''&&ch<='') {s=(s<<)+(s<<)+ch-'';ch=getchar();}
return s*f;
}
int main()
{
freopen("sword.in","r",stdin);
freopen("sword.out","w",stdout);
n=read();
for (int i=;i<=n;i++)
a[i]=read();
for (int i=;i>=;i--)
{
int p=;
for (int j=;j<=n;j++)
{
if ((ans&a[j])==ans&&(a[j]&(<<i))) p++;
if (p>=) break;
}
if (p>=) ans+=<<i;
}
printf("%d\n",ans);
return ;
}

[JZOJ4274] [NOIP2015模拟10.28B组] 终章-剑之魂 解题报告(二进制)的更多相关文章

  1. [JZOJ4272] [NOIP2015模拟10.28B组] 序章-弗兰德的秘密 解题报告(树形DP)

    Description 背景介绍弗兰德,我不知道这个地方对我意味着什么.这里是一切开始的地方.3年前,还是个什么都没见过的少年,来到弗兰德的树下,走进了封闭的密室,扭动的封尘已久机关,在石板上知道了这 ...

  2. JZOJ 4273. 【NOIP2015模拟10.28B组】圣章-精灵使的魔法语

    4273. [NOIP2015模拟10.28B组]圣章-精灵使的魔法语 (File IO): input:elf.in output:elf.out Time Limits: 1000 ms  Mem ...

  3. JZOJ 4272. 【NOIP2015模拟10.28B组】序章-弗兰德的秘密

    272. [NOIP2015模拟10.28B组]序章-弗兰德的秘密 (File IO): input:frand.in output:frand.out Time Limits: 1000 ms  M ...

  4. [JZOJ 5908] [NOIP2018模拟10.16] 开荒(kaihuang)解题报告 (树状数组+思维)

    题目链接: https://jzoj.net/senior/#contest/show/2529/1 题目: 题目背景:尊者神高达作为一个萌新,在升级路上死亡无数次后被一只大黄叽带回了师门.他加入师门 ...

  5. [JZOJ 5909] [NOIP2018模拟10.16] 跑商(paoshang) 解题报告 (圆方树)

    题目链接: https://jzoj.net/senior/#contest/show/2529/2 题目: 题目背景:尊者神高达很穷,所以他需要跑商来赚钱题目描述:基三的地图可以看做 n 个城市,m ...

  6. [JZOJ 4307] [NOIP2015模拟11.3晚] 喝喝喝 解题报告

    题目链接: http://172.16.0.132/senior/#main/show/4307 题目: 解题报告: 题目询问我们没出现坏对的连续区间个数 我们考虑从左到有枚举右端点$r$,判断$a[ ...

  7. JZOJ 4269. 【NOIP2015模拟10.27】挑竹签

    4269. [NOIP2015模拟10.27]挑竹签 (File IO): input:mikado.in output:mikado.out Time Limits: 1000 ms  Memory ...

  8. 【剑指Offer】连续子数组的最大和 解题报告(Python)

    [剑指Offer]连续子数组的最大和 解题报告(Python) 标签(空格分隔): 剑指Offer 题目地址:https://www.nowcoder.com/ta/coding-interviews ...

  9. NOIP2015 提高组(senior) 解题报告

    过了这么久才来发解题报告,蒟蒻实在惭愧 /w\ Day1 T1 [思路] 模拟 [代码] #include<iostream> #include<cstring> #inclu ...

随机推荐

  1. 一些.NET 项目中经常使用的类库

    Web自己主动化測试   Watin Selenium  Selenium git .net 集合类扩展实现C5 Subscriber/Publisher 模式 Rx Nats 防御式编程 断言库 流 ...

  2. [NIO]dawn之Task具体解释

    在上篇文章中,我们设置好了开发环境,接下来.我们将在了解了Task以及Buffer之后,再開始了解网络编程.我们首先来看看Task task简单介绍 package zhmt.dawn; import ...

  3. oracle 11g RAC 的一些基本概念

    一.脑裂以及对策 脑裂(split-brain)是集群中的一个糟糕的情况:集群中的所有集群正在工作的时候,内部通讯被断开.这种情况下,集群被分成了几个部分,每个部分的集群软件都会尝试去接管其他节点的资 ...

  4. CAS算法

    /** * CAS(Compare-And-Swap)算法保证了数据的原子性 * CAS算法是硬件对于并发操作共享数据的支持 * CAS包含了3个操作数: * 内存值 V 看成两步 读取内存值为1步 ...

  5. ie浏览器检测不到cookie的问题

    之前做项目由于客户的要求设置缓存必须由后台来设置必须使用cookie(session是没问题的),后期设置时出现了登录页面与首页来还跳转的局面.原因就是首页没检测到登录后的缓存,而后台验证到确实已经是 ...

  6. Kettle的设计

    不多说,直接上干货! 大家都知道,这2001年以来,一直在同各种ETL工具做斗争,所以Matt 确定了Kettle的一个主要设计目标是尽可能开放.主要就是指: 开发,可读的元数据格式(XML). 开放 ...

  7. Linux基础01

    ** 一些老生常谈的问题 一提起Linux,行业内无人不知<鸟哥私房菜>,就是放在胸口可以防弹的那种书,虽说经典.全面,但对于初学者而言,确实过于厚重,而且容易学着后边忘了前边,毕竟实际操 ...

  8. 记一次"未将对象引用设置到对象的实例"问题的排查过程

    最近在给一个老项目做数据对接接口. 背景一 该项目最后更新日期为2006年,使用ASP.NET WebForm..Net2.0.OJB.Castle Avtive Record等.由于是某集团的子系统 ...

  9. Servlet学习(三)——实例:用户登录并记录登陆次数

    1.前提:在Mysql数据库下建立数据库web13,在web13下创建一张表user,插入几条数据如下: 2.创建HTML文件,命名为login,作为登录界面(以post方式提交) <!DOCT ...

  10. 【原创】VMWare克隆或复制Linux虚拟机后无法上网的解决

    如果选择桥接,需要设置网卡通过哪个物理网卡桥接,桥接代表当前虚拟机通过本机的网卡直接连到网络中,本机网卡作为一个交换机直连.因此需要确定使用哪个网卡桥接,一般在单网卡的时候选择自动即可,多网卡时需要指 ...