当前位置: 首页 > 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://www.xdnf.cn/news/657019.html

相关文章:

  • 将 Docker 镜像从服务器A迁移到服务器B的方法
  • DNS 详情 新增 DNS 自适应服务器 ip
  • AI时代新词-AI驱动的自动化(AI - Driven Automation)
  • 【Sqoop基础】Sqoop定位:关系型数据库与Hadoop生态间的高效数据桥梁
  • Coze教程:10分钟打造你的AI智能管家
  • 使用 `.inl` 文件和 `#pragma once` 解决模板函数头文件膨胀问题指南
  • linux 1.0.2
  • Web字体本地化的一种方案
  • 基于谷歌浏览器的Web Crypto API生成一对2048位的RSA密钥(公钥+私钥),并以JSON格式(JWK)打印到浏览器控制台
  • rocky linux-系统基本管理
  • uniapp 配置本地 https 开发环境(基于 Vue2 的 uniapp)
  • Maven-概述-介绍安装
  • 数字ic后端设计从入门到精通5(含fusion compiler, tcl教学)def详解
  • 什么是BFC,如何触发BFC,BFC有什么特性?
  • Linux系统平均负载与top、uptime命令详解
  • 液体散货装卸管理人员备考指南
  • 对话魔数智擎CEO柴磊:昇腾AI赋能,大小模型融合开启金融风控新范式
  • 【区间dp】-----例题4【凸多边形的划分】
  • python_入门基础语法(2)
  • OpenHarmony平台驱动使用(二),CLOCK
  • 2.BS版使用说明
  • leetcode700.二叉搜索树中的搜索:迭代法下二叉搜索树性质的高效应用
  • 阿里云国际版注册邮箱格式详解
  • ⭐️⭐️⭐️ 模拟题及答案 ⭐️⭐️⭐️ 大模型Clouder认证:RAG应用构建及优化
  • leetcode 3559. Number of Ways to Assign Edge Weights II
  • Leetcode 3557. Find Maximum Number of Non Intersecting Substrings
  • OpenGL: Transform知识
  • 8.1.2 商品信息动态网站 - JSP+Servlet实现动态网站
  • 基于DDD的企业团餐订餐平台微服务架构设计与实现
  • 使用 Cannonballs 进行实用导体粗糙度建模