Description
托米完成了 1317 1317 1317的上一个任务,十分高兴,可是考验还没有结束
说话间 1317 1317 1317给了托米 n n n 个自然数 a 1 . . . a n a_1... a_n a1...an, 托米可以选出一些带回家,但是他选出的数需要满足一些条件
设托米选出来了$k 个 数 个数 个数 b_1,b_2… b_k$, 设这个数列 b b b 的给值为 b b b 中所有数按位与的结果,如果你能找到一个整除 $b 的 最 大 的 的最大的 的最大的 2v , , ,(v\ge 0)$, 则设定 v v v 为这个数列的给价,如果不存在这样的 v v v,则给价值为$ -1$, 1317 1317 1317 希望托米在最大化给价的情况下,最大化$ k$
Input
第一行输入一个整数$ n$, 第二行输入 a 1 . . . a n a_1...a_n a1...an
( n ≤ 1 0 5 , a 1 , . . . , a n < 2 31 ) (n\le 10^5,a_1,...,a_n<2^{31}) (n≤105,a1,...,an<231)
Output
第一行输出最大的整数 k k k, 第二行输出 k k k 个整数 b 1 . . . b k b_1... b_k b1...bk, 按原数列的相对顺序输出 (如果行末有额外空格可能会格式错误)
Sample Input
5
1 2 3 4 5
Sample Output
2
4 5
Solution
从大到小枚举 v v v,将第 v v v位都为 1 1 1的数字取出,若这些数字逻辑与后在第 v v v位后都是 0 0 0则说明 v v v合法,此时选取的数字显然最多
Code
#include<cstdio>
using namespace std;
#define maxn 100005
int n,a[maxn],ans[maxn],res;
int main()
{
scanf("%d",&n);
for(int i=1;i<=n;i++)scanf("%d",&a[i]);
for(int v=30;v>=0;v--)
{
int temp=(1<<v)-1;
res=0;
for(int i=1;i<=n;i++)
if((a[i]>>v)&1)temp=(temp&a[i]),ans[res++]=i;
if(temp==0)
{
printf("%d\n",res);
for(int i=0;i<res;i++)printf("%d%c",a[ans[i]],i==res-1?'\n':' ');
break;
}
}
return 0;
}
用Xcode12.2连接系统为iOS15的真机调试时出现错误,提示: The code signature version is no longer supported。在不升级Xcode的情况下如何解决这个问题呢?Let’s find out!
语法定义在Verilog2001以后,Verilog支持在范围中是用变量,并且引入心得语法如下: [<base_index> + : bit_width] //由低位到高位 [<base_index> - : bit_width] //由高位到低位语法应用 wire [7:0] b; wire [3:0] a = b[6 - : 4]; //等价于 a = b[6:3] wire [2:0
编写代码,实现最小堆(Min-Heap)的操作。输入格式:第一行是两个不大于1000的正整数N和K,用空格间隔。其中N是堆的容量,需创建一个容量为N的堆。接下来K行,是对这个堆的依次的K项插入或删除操作:用1 x表示插入元素x;用-1表示删除堆顶。接下来一行是一个不大于1000的正整数M,接下来一行是M个整数(在整型范围内),用空格间隔,要求将这M个整数组成的列表调...
此问题在oppo R9 系列的手机出现较多,而且主要集中在Android 5.1-6.0的手机系统。TimeoutException,在Android 系统里会出现下面这些,在释放资源时,因耗时导致的,可能不是10s,可能会是20s,30s,60s,120s。具体跟手机有关。android.database.CursorWindow.finalize() timed out after 10 se...
相关代码文件如下:代码路径说明frameworks/native/cmds/servicemanager/service_manager.cservicemanager守护进程启动文件frameworks/native/cmds/servicemanager/binder.cservicemanager在实现时,并没有引用libbinder库,所以将一些和binde...
利用的就是计算机存储的特性,需要注意大小端1.char sDec[4] = {0x05,0xc5,0xb3,0xea};低字节序的情况下. 并且 int 占用 32bit. char sDec[4] = {0x05,0xc5,0xb3,0xea};int val = 0;char *pBuf = (char*)&val;pBuf[0] = sDec[3];pBuf[1] = sDec[2];pBuf[2] = sDec[1];pBuf[3] = sDec[0];这时val=
Linux 下 strace 命令用法总结1 功能说明strace 命令是一种强大的工具, 能够显示任何由用户空间程式发出的系统调用. strace 显示这些调用的参数并返回符号形式的值. strace 从内核接收信息, 而且无需以任何特别的方式来构建内核. strace 的每一行输出包括系统调用名称, 然后是参数和返回值.下面记录几个常用option:-f -F选
文章目录业务背景分布式事务解决方案及缺点业务过程分析下单扣减库存的业务难点解决方案1. 先扣库存,后创建订单2. 先创建订单,后扣库存异常数据处理1. 库存表流水表2. 重试+回滚+报警+人工介入总结这里是weihubeats,觉得文章不错可以关注公众号小奏技术,文章首发。拒绝营销号,拒绝标题党业务背景我们这里将业务简化为最简单的下单扣库存逻辑,不去关注其他分支部分来理解整个电商下单扣库存的解决方案分布式事务解决方案及缺点最终一致性:异步解决方案,数据同步有延迟。性能高TCC(try、Co
交换机+路由器之间上网,nat acl ospf
首先通过搜索有关Android-Studio 编译耗时(好久、太长)问题的博客,速度确实有所改善。一、暂时解决 Android-Studio 编译耗时(好久、太长)问题本文链接:https://blog.csdn.net/u012827205/article/details/78338829简单描述一下我遇到的问题2017年10月24日下午6点之前我的 android stu...
现在追书神器更新的,看小说需要花钱的,现在介绍苹果(ios)破解版的给大家各位手机最好先越狱,否则,用不了这个软件,越狱之后,可以用过PP助手安装在手机至于如何越狱,本人就不介绍了,自己百度吧下载网址:http://www.zsgtdc.cn/listData.php?id=53
本文摘抄自我的微信公众号“程序员柯南”,欢迎关注!原文阅读倒排索引是目前搜索引擎公司对搜索引擎最常用的存储方式,也是搜索引擎的核心内容,在搜索引擎的实际应用中,有时需要按照关键字的某些值查找记录,所以是按照关键字建立索引,这个索引就被称为倒排索引。首先你要明确,索引这东西,一般是用于提高查询效率的。举个最简单的例子,已知有5个文本文件,需要我们去查某个单词位于哪个文本文件中,最直观的做法就是挨...