AcWing 998. 起床困难综合症

原题链接

 

其实上面这一堆就是想说,输入 n,m以及 n 个数和该数所对应的运算,其中运算包括有 与、或、异或 三种,真正的问题就是在所有不大于 m 的数(非负数)中,对给定的 n 个数都按该数所对应的运算运算一遍后,能得到得最大的值是多少。

AND 表示按位与,OR 表示按位或,XOR 表示按位异或
 

 Accepted Code:

#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;const int N=1e6+5;
int n,m;	//门的数量以及攻击力 
int t[N];	//运算的参数 
char str[4];	//存储输入的字符串 
int op[N];	//存储运算操作 
int ans;	//存储答案 bool calc(bool x,int j) {for(int i=0;i<n;i++){if(op[i] == 1) x&=t[i]>>j&1; else if(op[i] == 2) x|=t[i]>>j&1;else x^=t[i]>>j&1;}return x;
}//function:执行各种运算(/*  因为该题的按位与、按位或、按位异或的每次运算只有关该位上的数字,不影响其他位置上的数字又因为C语言的结构特点我们可以从高位到低位来确定数的每一位*/
int main(){scanf("%d %d",&n,&m);for(int i=0;i<n;i++){scanf("\n%s %d",str,t+i);/*标记成整数形方便后续对应是什么运算*/if(*str=='A') op[i]=1;	//与运算 else if(*str=='O') op[i]=2;	  //或运算 else op[i]=3;	//异或运算 }for(int i=29;~i;i--){ if(1<<i<=m){	//伤害不能超出范围 bool x=calc(0,i);   //该位填0的结果bool y=calc(1,i);   //该位填1的结果//哪个数值更大就填哪个if(x>=y)	ans|=x<<i;else ans|=y<<i,m-=1<<i; //(填1的话要让m减去该结果,为了后续只需要继续小等于m)}else ans|=calc(0,i)<<i; //超出范围了只能将该位置置为0}cout<<ans<<endl;return 0;
} 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/604483.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

DNS域名解析过程

目录 DNS域名解析的过程什么是DNS解析解析过程递归查询和迭代查询 DNS域名解析的过程 什么是DNS解析 在学习DNS域名解析之前&#xff0c;我们先要弄懂几个前提概念。 DNS是一个应用层的协议&#xff0c;和HTTP、SMTP、FTP等这些协议同属于一个级别DNS协议要依赖的传输层协议…

CentOS未能挂起虚拟机

问题&#xff1a; CentOS未能挂起虚拟机 解决方案&#xff1a; 1、切换到root 2、打开/etc/selinux/config 3、编辑fonfig文件SELINUXpermissive 4、重启VMware&#xff08;很重要&#xff01;&#xff01;&#xff01;简单粗暴&#xff0c;直接右上角x关机。&#xff09; …

Android 集成vendor下的模块

Android 集成vendor下的模块 &#xff0c;只需要在 PRODUCT_PACKAGES 加上对应的模块名&#xff0c;编译的时候就会执行对应模块的bp文件&#xff0c;集成到系统中 PRODUCT_PACKAGES \WallpaperPicker \Launcher3 \com.nxp.nfc Android11 Framework Vendor下自定义系统…

嵌入式培训机构四个月实训课程笔记(完整版)-Linux系统编程第三天-Linux进程(物联技术666)

更多配套资料CSDN地址:点赞+关注,功德无量。更多配套资料,欢迎私信。 物联技术666_嵌入式C语言开发,嵌入式硬件,嵌入式培训笔记-CSDN博客物联技术666擅长嵌入式C语言开发,嵌入式硬件,嵌入式培训笔记,等方面的知识,物联技术666关注机器学习,arm开发,物联网,嵌入式硬件,单片机…

二叉树算法题(一)

根据二叉树创建字符串 根据二叉树创建字符串 给你二叉树的根节点 root &#xff0c;请你采用前序遍历的方式&#xff0c;将二叉树转化为一个由括号和整数组成的字符串&#xff0c;返回构造出的字符串。 空节点使用一对空括号对 "()" 表示&#xff0c;转化后需要省…

linux seq_file 文件编程步骤

在上面我们介绍了使用 seq_file 需要实现的一些函数和相关结构体&#xff0c;现在我们把它们组合起来&#xff0c;介绍以下 通过 proc 来使用 seq_file 的一般步骤&#xff0c;而 seq_file 在其他方面的应用方法也是一样的。 (1) 实现 seq_operations &#xff0c;也就是前面我…

springMvc向request作用域存储数据的4种方式

文章目录 目录1、springmvc使用ServletAPI向request作用域共享数据&#xff08;原生态&#xff09;2、springmvc使用ModelAndView向request作用域共享数据3、springmvc使用Model向request作用域共享数据4、springmvc使用map向request作用域共享数据5、springmvc使用ModelMap向r…

VMware Workstation——快照

目录 一、为什么要使用快照 二、拍摄快照 三、快照管理 1、克隆 2、转到 ​3、删除 一、为什么要使用快照 VMware虚拟机的快照是一个很重要的功能。 简单点说它相当于某个时刻虚拟的备份&#xff0c;并且可以快速还原至原来的状态。但是它和备份还是有区别的。 【快照…

Java集合框架深度解析:HashMap

Java中的HashMap是一种基于哈希表的实现&#xff0c;提供了快速的查找性能。在这篇深度解析中&#xff0c;我们将深入探讨HashMap**的实现原理、适用场景、潜在问题以及并发控制策略。 1. HashMap的实现原理 1.1 哈希表 HashMap内部基于哈希表实现&#xff0c;通过散列函数将…

基于移动群智感知的网络信号图谱构建系统

一&#xff0e;项目研究内容 本项目基于移动群智感知技术的群体感知特性&#xff0c;利用手机的GSM/3G/4G/5G/WiFi等通信模块可以采集不同位置的移动蜂窝网络基站等网络基础设施的信号覆盖数据&#xff0c;充分发动人民群众&#xff0c;携带安装有感知功能软件的智能手机在环境…

软件装一送三了!还附带弹窗资讯,你确定不试一下?

前言 前几天一个朋友向我吐槽&#xff0c;说电脑太卡了。自己好像都没安装什么软件&#xff0c;怎么就那么多弹窗广告。 我看了一下他的电脑&#xff0c;笑了一下说&#xff1a;你的电脑真好&#xff0c;都会只能给你推荐美女看&#xff0c;这资讯来之不易啊&#xff0c;好好享…

数据库开发与设计过程中的问题分析总结

数据库设计的过程是将数据库系统与现实世界密切地、有机地、协调一致地结合起来的过程。数据库的设计质量与设计者的知识、经验和水平密切相关。作为数据库应用系统的重要组成部分&#xff0c;数据库设计的成败往往直接关系到整个应用系统的成败。以数据库为基础的数据库应用系…

【JaveWeb教程】(8)Web前端基础:Vue组件库Element之Table表格组件和Pagination分页组件 详细示例介绍

目录 1 Table表格组件1.1 组件演示1.2 组件属性详解 2 Pagination分页2.1 组件演示2.2 组件属性详解2.3 组件事件详解 接下来我们来学习一下ElementUI的常用组件&#xff0c;对于组件的学习比较简单&#xff0c;我们只需要参考官方提供的代码&#xff0c;然后复制粘贴即可。本节…

WebStorm 创建一个Vue项目

一、下载并安装WebStorm 步骤一 步骤二 选择激活方式 激活码&#xff1a; I2A0QUY8VU-eyJsaWNlbnNlSWQiOiJJMkEwUVVZOFZVIiwibGljZW5zZWVOYW1lIjoiVU5JVkVSU0lEQURFIEVTVEFEVUFMIERFIENBTVBJTkFTIiwiYXNzaWduZWVOYW1lIjoiVGFvYmFv77yaSkVU5YWo5a625qG25rAIOa0uW3peS9nOWup…

docker安装 mysql

一、安装docker# windows 和 mac 版可以直接到官网下载 docker desktop linux 的安装方法可以参考 https://www.cnblogs.com/myzony/p/9071210.html 可以在shell中输入以下命令检查是否成功安装&#xff1a; sudo docker version 二、建立镜像# 拉取官方镜像&#xff08;我…

0.9uA 低功耗低压差稳压器

一、基本概述 FM6215 系列采用 CMOS 工艺制造的高精度、低功耗低压差稳压器。该系列具有极低的静态电流, 输出电压 3.3v的产品静态功耗仅为 0.9uA(TYP),最大输出电流可达到 300mA。 产品采用 SOT23-5 封装&#xff0c;因此&#xff0c;该系列适用于需要高密度安装的应用场合&a…

【git使用】历史commit的分割(git rebase和 git reset的联合使用)

参考 [译] 分割一个已存在的 git commit - 掘金Git - 重写历史idea git如何撤回提交 - PingCodegit 工作原理与撤销操作图解 | Shall We Code? 分割一个已存在的 git commit Git 与其他版本控制系统的主要区别之一&#xff0c;在于其允许用户重写历史。实现这一目的的主要途…

【算法】和为K的连续子数组

牛客链接&#xff1a;https://www.nowcoder.com/practice/704c8388a82e42e58b7f5751ec943a11?tpId196&&tqId37127&rp1&ru/ta/job-code-total&qru/ta/job-code-total/question-ranking 使用【前缀法】&#xff0c;把所有连续和合索引存进哈希表&#xff0c…

2024阿里云服务器可用区选择方法

阿里云服务器地域和可用区怎么选择&#xff1f;地域是指云服务器所在物理数据中心的位置&#xff0c;地域选择就近选择&#xff0c;访客距离地域所在城市越近网络延迟越低&#xff0c;速度就越快&#xff1b;可用区是指同一个地域下&#xff0c;网络和电力相互独立的区域&#…

Dockerfile的EXPOSE

文章目录 环境总结测试使用EXPOSE测试1&#xff1a;不做端口映射测试2&#xff1a;-p 8080:80测试3&#xff1a;-P测试4&#xff1a;--networkhost 不使用EXPOSE 参考 环境 RHEL 9.3Docker Community 24.0.7 总结 如果懒得看测试的详细信息&#xff0c;可以直接看结果&#…