A. And Then There Were K

题意:

给你一个n,让你求一个k,使得满足下列式子:
n & (n-1) & (n-2) &…&(k) = 0
问k最小是多少?

题解:

找规律
比如n的二进制为:1111
那么n-1就是:1110
n-2就是:1101

你会发现n-1是最后一位和n不一样,n-2是倒数第二位不一样,在&下,不同为0,所以k最大就是0111,就是第一位不一样,其余都为1

代码:

#include<bits/stdc++.h>
#define debug(a,b) printf("%s = %d\n",a,b);
typedef long long ll;
using namespace std;inline int read(){int s=0,w=1;char ch=getchar();while(ch<'0'||ch>'9'){if(ch=='-')w=-1;ch=getchar();}while(ch>='0'&&ch<='9') s=s*10+ch-'0',ch=getchar();//s=(s<<3)+(s<<1)+(ch^48);return s*w;
}
int main()
{int t;cin>>t;while(t--){ll n;cin>>n;ll ans=1;int f=0;ll i;for(i=30;i>=0;i--){if(f==0&&(n&(1<<i))){f=1;ans=(1<<i);continue;}if((n&(1<<i))==0){if(f==0)continue; break;}}cout<<ans-1<<endl;} return 0;
}

A. And Then There Were K相关推荐

  1. GB_T28181-2016.pdf

    国标28181-2016版本检测,由于文件过大,而且博客不支持上传文件,需要GB28181-2016协议文档和公安一所检测文档的可以私信我,QQ:123011785 I C S1 3. 3 1 0 A ...

  2. 伍六七带你学算法 入门篇-最小的k个数

    java面试题-最小的k个数 难度-简单 输入整数数组 arr ,找出其中最小的 k 个数.例如,输入4.5.1.6.2.7.3.8这8个数字,则最小的4个数字是1.2.3.4. 示例 1: 输入:a ...

  3. 剑指offer 40.最小的 K 个数 python代码

    题目 寻找数组中的最小的k个数,也叫topk问题. 牛客网测试地址 注意: 牛客网的提交需要将最终的结果排序 思路 快速排序的 partition() 方法,会返回一个整数 j 使得 a[l-j-1] ...

  4. 聚类和EM算法——K均值聚类

    20211116 数据分析 | 聚类分析--kmean kmeans最优k值的确定方法-手肘法和轮廓系数法 - 简书 python大战机器学习--聚类和EM算法 注:本文中涉及到的公式一律省略(公式不 ...

  5. LeetCode简单题之K 进制表示下的各位数字总和

    题目 给你一个整数 n(10 进制)和一个基数 k ,请你将 n 从 10 进制表示转换为 k 进制表示,计算并返回转换后各位数字的 总和 . 转换后,各位数字应当视作是 10 进制数字,且它们的总和 ...

  6. LeetCode简单题之差的绝对值为 K 的数对数目

    题目 给你一个整数数组 nums 和一个整数 k ,请你返回数对 (i, j) 的数目,满足 i < j 且 |nums[i] - nums[j]| == k . |x| 的值定义为: 如果 x ...

  7. LeetCode简单题之数组中第 K 个独一无二的字符串

    题目 独一无二的字符串 指的是在一个数组中只出现过 一次 的字符串. 给你一个字符串数组 arr 和一个整数 k ,请你返回 arr 中第 k 个 独一无二的字符串 .如果 少于 k 个独一无二的字符 ...

  8. 整数n的倒数第k个数字

    整数n的倒数第k个数字 Time Limit: 1 Sec  Memory Limit: 128 MB   64bit IO Format: %lld Description 编写程序输出正整数n中从 ...

  9. 查找无序数组中第K大的数

    思路: 利用快速排序的划分思想 可以找出前k大数,然后不断划分 直到找到第K大元素 代码: #include <iostream> #include <algorithm> # ...

  10. 金蝶K/3 BOS产品培训教案

    K/3 BOS产品培训教案     1 K/3 BOS IDE练习案例... 2 1.1新建基础资料... 2 1.1.1新增基础资料交货地点... 2 1.2新建业务单据... 2 1.2.1新建寄 ...

最新文章

  1. 我们不应歧视任何编程语言,她们都是萌娘!(有图有真相)
  2. mapper.xml报异常The content of elhe content of element type mapper
  3. EXCEL两组数相等红色标示并放到第三列_VBA
  4. sql基础教程亚马逊_针对Amazon,Apple,Google的常见SQL面试问题
  5. 查看CentOS系统运行了多久使用uptime命令
  6. MySQL数据库安装Version5.7.25
  7. 阿发你好java_191122_01 纯前端JS实现的文字验证码
  8. 10 things they never teach in college about programming
  9. window10运行python弹出商店_Python上架Windows 10应用商店,但主要用于学习,正式项目还...
  10. 沁恒CH348 USB转8串口芯片
  11. 如何申请Gmail邮箱?_manok_新浪博客
  12. mtatlas mysql_MHA-Atlas-MySQL高可用(下)
  13. 前端大文件上传断点续传解决方案
  14. 如何选择适合你的兴趣爱好(六十三),养鱼
  15. 使用WASD键移动对象
  16. css 动画如何保持最终的状态
  17. 20210407 lvm
  18. 2021-09-08 python基础知识学习:文件操作和os模块
  19. 45度做人,90度做事,180度为人,360度处世
  20. 【SSL_P1502】校门外的树

热门文章

  1. 为什么祖国没有农历生日? | 今日最佳
  2. 资料分享 | 数据挖掘实例资料分享来袭
  3. 稳定匹配问题——稳定婚姻算法设计
  4. 国庆中秋活动——读完这两套书,宝宝就变小小物理学家了!
  5. char varchar java_在数据库中varchar与char的区别
  6. oss多线程 上传_oss-android/ios-sdk 断点续传(多线程)
  7. 2014全国计算机二级ms office,2014计算机二级MS Office真题及答案
  8. php实现电脑自动关机,用批处理实现电脑自动关机
  9. boostrap 鼠标滚轮滑动图片_16种基于Bootstrap的css3图片hover效果
  10. navicat如何连接腾讯mysql_使用Navicat连接腾讯云Mysql数据库