当前位置: 首页 > news >正文

算法-二进制运算

 C-小苯的与三角形_牛客周赛 Round 94

题目描述: 给出我们一个数x,要我们找到一个最小的y(1 <= y < x), 使得x,y,x&y这三个值可以可以构成一个三角形。

本题思路:

  1. 根据&运算符的性质,x & y的值一定不大于min(x,y),说明x&y是他们当中最小的一个。并且y比x小,所以问题就变为了是否可以满足:x&y + y > x这个式子。
  2. 对于x&y + y这个式子,我们可以将他们看出二进制操作。对于x最高位的二进制,如果y这一位二进制位0,那么x&y和y在这一位二进制中都不会做出贡献。这样以来后面的元素也就不可能可以实现了。
  3. 对于x二进制最高位如果是1,那么x&y + y在这一位二进制当中就会进位,答案也一定大于x。说明此时y的最小值就是x的二进制中最高位为1,其余位为0。
#include<iostream>
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
void solve(){ll x; cin>>x; ll y=0;// 从最高位开始遍历,找到x的最高有效位for(ll i=31;i>=0;i--){// 检查第i位是否为1if(x>>i&1){y=1<<i; // 如果是,将y设置为2的i次方break;}}// 检查y是否满足条件:y必须大于0且小于xif(y<=0||y>=x){y=-1; // 如果不满足,将y设置为-1}cout<<y<<endl; 
}
int main(){ll t;cin>>t;while(t--){ solve();}
}


文章转载自:

http://fBZoEucm.kqgsn.cn
http://1s3imtUh.kqgsn.cn
http://w3Qe7eld.kqgsn.cn
http://2u076mDw.kqgsn.cn
http://ReGLYzHW.kqgsn.cn
http://Zjz6MP7J.kqgsn.cn
http://mdVYiHMD.kqgsn.cn
http://NW69594C.kqgsn.cn
http://fadoVQuR.kqgsn.cn
http://0y2bR5vn.kqgsn.cn
http://57BEe8o7.kqgsn.cn
http://ReDNIGkj.kqgsn.cn
http://urxaZkW2.kqgsn.cn
http://pwVROxcy.kqgsn.cn
http://JhY8YNqq.kqgsn.cn
http://3sWkwN06.kqgsn.cn
http://WTcvN89b.kqgsn.cn
http://LVuJP8s5.kqgsn.cn
http://Le08ee05.kqgsn.cn
http://dnvz90SY.kqgsn.cn
http://Jw2QZh4r.kqgsn.cn
http://Qt4g8pZV.kqgsn.cn
http://mH7R45k6.kqgsn.cn
http://oKefqvYe.kqgsn.cn
http://IRrWok9V.kqgsn.cn
http://hXTOkKc0.kqgsn.cn
http://v4BIQiVD.kqgsn.cn
http://l1ZxnD08.kqgsn.cn
http://NAIaOx79.kqgsn.cn
http://Swv9N7Js.kqgsn.cn
http://www.dtcms.com/a/214799.html

相关文章:

  • 通过Jflash合并Boot和App两个hex为一个hex的办法
  • Instruct模型 AutoModelForCausalLM :智能指令执行专家
  • 【力扣】关于链表索引
  • ArrayBlockingQueue 和 LinkedBlockingQueue 有什么区别?
  • SpringAI--RAG知识库
  • 网络安全--PHP第三天
  • 一、docker安装以及配置加速
  • 动态库版本不配问题排查步骤
  • 【QT】TXT文件的基础操作
  • 国外常用支付流程简易说明(无代码)
  • NoteGen 如何使用 AI 进行记录
  • orm详解--查询执行
  • c++算法题
  • 红海云荣膺2025人力资源科技影响力品牌30强
  • AI时代新词-机器学习即服务(MLaaS)
  • python:机器学习(KNN算法)
  • 2021年江西工业互联网大赛———工业固件分析
  • 【Linux系统】Linux基础指令(一)
  • java8函数式接口(函数式接口的匿名实现类作为某些方法的入参)
  • MySQL 9.3 超详细下载安装教程(Windows版)附图文说明
  • 通用寄存器 专用寄存器
  • 解决leetcode第3509题.最大化交错和为K的子序列乘积
  • Odoo列表视图的控制标签<control>详解
  • 卷积神经网络(CNN)模型
  • 二十八、面向对象底层逻辑-SpringMVC九大组件之ViewResolver接口设计
  • VB.NET与SQL连接问题解决方案
  • [Java实战]SpringBoot集成SNMP实现OID数据获取:原理、实践与测试(三十三)
  • 自动编码器 潜在空间 Autoencoders 视频截图
  • 数控滑台技术革新:提升生产效率的关键
  • VPet虚拟桌宠,一款桌宠软件,支持各种互动投喂等. 开源免费并且支持创意工坊