题目描述

你就是一个画家!你现在想绘制一幅画,但是你现在没有足够颜色的颜料。为了让问题简单,我们用正整数表示不同颜色的颜料。你知道这幅画需要的n种颜色的颜料,你现在可以去商店购买一些颜料,但是商店不能保证能供应所有颜色的颜料,所以你需要自己混合一些颜料。混合两种不一样的颜色A和颜色B颜料可以产生(A XOR B)这种颜色的颜料(新产生的颜料也可以用作继续混合产生新的颜色,XOR表示异或操作)。本着勤俭节约的精神,你想购买更少的颜料就满足要求,所以兼职程序员的你需要编程来计算出最少需要购买几种颜色的颜料?

输入描述:

第一行为绘制这幅画需要的颜色种数n (1 ≤ n ≤ 50)
第二行为n个数xi(1 ≤ xi ≤ 1,000,000,000),表示需要的各种颜料.

输出描述:

输出最少需要在商店购买的颜料颜色种数,注意可能购买的颜色不一定会使用在画中,只是为了产生新的颜色。

示例1

输入

3
1 7 3

输出

3

思路:这题完全显示出了自己的数学功底是真滴菜啊,看不出来本质上是矩阵求秩啊。

我们还是需要回顾下异或运算的性质的,a^b=c,则a^c=b,对于该题,两个数的二进制表示我们可以将其看做行向量,之后我们需要思考为什么本题可以转化为求矩阵的秩。

由于本题是求最少需要多少种颜料从而使得能够实现我们所需的所有颜色,“最少”的要求使得我们需要思考什么数是必须要存在的,并且这个数能使全局最优。我们假设数字x的某一位为1,为了让数字x不可或缺,我们就需要让这一位上的1是唯一出现的,也就是说我们可以通过让这个数和其他所有相应位为1的数进行异或,从而使得只有x上的这一位为1,剩下的数以此类推。为了避免重复,我们需要每次将剩下的元素进行排序,并按照高位到低位来模拟(这不就是矩阵求秩嘛!)

#include<stdio.h>
#include<algorithm>
using namespace std;
int n,a[199];
int main(void){scanf("%d",&n);for(int i=0;i<n;i++)scanf("%d",&a[i]);for(int i=n-1;i>0;i--){sort(a,a+i+1);for(int j=i-1;j>=0;j--)if((a[i]^a[j])<a[j])a[j]^=a[i];}int i=0;for(;a[i]==0;i++);printf("%d\n",n-i);return 0;
}

网易历届笔试题(1)相关推荐

  1. 网易历届笔试题(5)

    题目描述 一个只包含'A'.'B'和'C'的字符串,如果存在某一段长度为3的连续子串中恰好'A'.'B'和'C'各有一个,那么这个字符串就是纯净的,否则这个字符串就是暗黑的.例如: BAACAACCB ...

  2. 网易历届笔试题(11)

    题目描述 小Q是篮球训练队的教练,篮球队新加入了N名队员,第i名队员的篮球水平值为ai. 小Q现在要把他们按照以下的要求分为A队和B队进行训练: 1.A队的队员水平值之和严格大于B队的队员水平值之和 ...

  3. 网易实习笔试题——炸弹人编程

    目录 网易实习笔试题--炸弹人编程 一.题目要求 二.实现逻辑 1.Enemy类 2.随机生成游戏布局 3.展示游戏布局 4.寻找炸弹人可达区域 5. 放炸弹炸死敌人 6.在可达区域放置两颗炸弹,并且 ...

  4. 2017网易前端笔试题总结

    整理了一下2017网易前端笔试题,附上了自己的答案,仅供参考,欢迎讨论和交流.如果有什么不对的地方,欢迎指正. 题目整理(不含答案) 网盘分享: 链接: https://pan.baidu.com/s ...

  5. 网易python笔试题_python 饥饿的小易(网易笔试题)

    本周早些时候,学弟给我发了一道网易的笔试题,饥饿的小易,感觉有点意思-分享给大家 题目描述: 小易总是感觉饥饿,所以作为章鱼的小易经常出去寻找贝壳吃.最开始小易在一个初始位置x_0.对于小易所处的当前 ...

  6. 网易2017笔试题-日记的颜色

    题目描述 最近面试做了一个笔试题,感觉还挺有收获的. 输入输出样例 输入例子: 2<diary><color=red>I am happy.<color=blue> ...

  7. mysql中哪种方式可以开启一个事务_网易技术类笔试题-2016

    一.单选题 1.下面两个结构体 struct One{ double d; char c; int i; } struct Two{ char c; double d; int i; } 在#prag ...

  8. 2021网易实习生笔试题(一场计算机视觉、一场数据研发后端)

    计算机视觉算法岗 网易的笔试貌似是有好多题随机给四道做,看评论大家的题并不完全一样,我找到的四道题如下: 题目一 牛牛的等差数列 长度为n的数组a,找到一个最大的正整数d,使得对于所有i,a[i+1] ...

  9. 一道网易游戏笔试题的不同解法

    下面的乘法计算过程中的不同字母代表0-9中不同的数,请写出与各个字母对应的数字: ABCDEFGH *                    AJ ------------------ EJAHFDG ...

最新文章

  1. MyEclipse安装Freemarker插件
  2. Flask实战2问答平台-父模板抽离(登录注册界面)
  3. 一台服务器多个网站同端口,多个客户端如何同时连接到服务器上的一个端口,比如80?...
  4. 用c语言实现蚂蚁算法,rsa算法的c语言实现
  5. CMake with WinMinGW
  6. 主板19针接口_装机新人手册:一分钟学会主板跳线
  7. Matrix Chain Multiplication (堆栈)
  8. linux mysql恢复数据_删库不跑路详解MySQL数据恢复
  9. Portal: 强叔侃墙
  10. 在Android中调用KSOAP2库访问webservice服务出现的服务端返回AnyType{}
  11. 2021数学建模国赛一等奖经验总结与分享
  12. latex 两行 大括号_用laTeX排版大括号的三种方法
  13. Web前端开发工程师的具备条件
  14. 转:马明哲:拥有执行力才能让你强大
  15. 一个链表L 一个链表P 包含升序排列的整数 操作PrintLots(L,P)将打印L中那些由P所指定的位置上的元素
  16. 微信小程序-腾讯云即时通信 IM 小程序直播(一)
  17. tomcat的开发模式和生产模式
  18. matplotlib交互式数据光标实现——mpldatacursor
  19. 天平游码读数例题_“天平”典型题析
  20. java配置ssm_不用xml 配置文件,纯粹使用java配置类搭建SSM项目

热门文章

  1. eventlet 协程
  2. 招生啦!清华大学SIGS人工智能硕士项目2021年硕士研究生普通招考说明
  3. iOS 防止截屏、录屏技术
  4. c 语言 合并多个excel,C#操作Excel合并多个Excel文件
  5. c mysql加密解密_mysql内置加密函数对数据加密
  6. office文件转换为pdf文件
  7. 面试官:讲讲互斥锁、自旋锁吧
  8. C#winform图片、图标操作
  9. 使用ScanShadowsFilter过滤激光雷达拖尾
  10. 转:深网 | 中国手机往事:因为雷军、罗永浩们,中国才告别山寨机