起床困难综合症(0x01位运算)

简介: 笔记

起床困难综合症


题意

drd 的防御战线由 n 扇防御门组成。


每扇防御门包括一个运算 op 和一个参数 t,其中运算一定是 OR,XOR,AND 中的一种,参数则一定为非负整数。


如果还未通过防御门时攻击力为 x,则其通过这扇防御门后攻击力将变为 x op t。


最终 drd 受到的伤害为对方初始攻击力 x 依次经过所有 n 扇防御门后转变得到的攻击力。


由于 atm 水平有限,他的初始攻击力只能为 0 到 m 之间的一个整数(即他的初始攻击力只能在 0,1,…,m 中任选,但在通过防御门之后的攻击力不受 m 的限制)。


为了节省体力,他希望通过选择合适的初始攻击力使得他的攻击能让 drd 受到最大的伤害,请你帮他计算一下,他的一次攻击最多能使 drd 受到多少伤害。


思路

这道题的前提是 位运算的主要特点之一是在二进制表示下不进位


所以假设我们选择的初始值为x 那么我们可以分别考虑 x 的每一位应该选择 0 还是 1


最后组合到一起,就得到了最终的 x


那么第 k 位 选 1 还是 0 呢?


对于下面两种情况 选择 1 更优


已经填好的更高位的数值加上 1 << k 小于等于 m。

初始值为 1 得到的最终值比初始值为 0 得到的最终值大

若不满足上面两个条件,那么肯定是选 0 更优


每一位都确定好之后,就可以得到答案


代码

#include<bits/stdc++.h>
// #define int long long
#define INF 0x3f3f3f3f
#define mod 1000000007
#define rep(i, st, ed) for (int (i) = (st); (i) <= (ed);++(i))
#define pre(i, ed, st) for (int (i) = (ed); (i) >= (st);--(i))
using namespace std;
typedef long long LL;
typedef pair<int, int> PII;
template<typename T> inline T gcd(T a, T b) { return b ? gcd(b, a % b) : a; }
template<typename T> inline T lowbit(T x) { return x & -x; }
const int N = 1e5 + 10;
int n, m;
pair<string, int>a[N];
int cal(int bit, int x) {
  for (int i = 1; i <= n; ++i) {
    int k = a[i].second >> bit & 1;
    if (a[i].first == "AND") x &= k;
    else if (a[i].first == "OR") x |= k;
    else x ^= k;
  }
  return x;
}
void solve() {
  cin >> n >> m;
  for (int i = 1; i <= n; ++i) {
    string str;
    int x;
    cin >> str >> x;
    a[i] = { str,x };
  }
  int res = 0, val = 0;
  for (int i = 29; i >= 0; --i) {
    int res0 = cal(i, 0);
    int res1 = cal(i, 1);
    if (val + (1 << i) <= m && res0 < res1) {
      val += 1 << i;
      res += res1 << i;
    }
    else res += res0 << i;
  }
  cout << res << endl;
}
signed main() {
  // int t; cin >> t;
  // while (t--)
    solve();
  return 0;
}


目录
相关文章
人工智能 缓存 前端开发
6037 17
人工智能 JavaScript 开发工具
2802 3
|
11天前
|
存储 弹性计算 缓存
阿里云服务器租赁费用:新版租赁收费标准及活动报价参考
本文更新了2026年阿里云全系列云服务器租赁活动报价,所有特惠资源均可前往阿里云活动中心选购,整体覆盖从个人入门到企业级高性能场景的全梯度需求。其中轻量应用服务器主打极致性价比,2核2G峰值200M带宽配置每日10点、15点限时抢购价仅38元/年,2核4G配置379元/年起;高性价比的经济型e实例、通用算力型u2i实例覆盖2核4G至4核32G全档位,适配开发测试与中小型企业业务;搭载英特尔至强6处理器的第九代c9i企业级实例算力较上代提升20%,支撑高并发生产环境,不同实例规格价差清晰,用户可根据自身业务负载与预算灵活选型。
2050 121
阿里云服务器租赁费用:新版租赁收费标准及活动报价参考
缓存 JavaScript Shell
1219 1
|
12天前
|
人工智能 程序员 API
Codex 接入 DeepSeek-V4-Flash:还能补上识图,提供两套方案
Codex 接入 DeepSeek-V4-Flash 怎么配?本文覆盖 CLI 与桌面端,再用 qwen3-vl-flash 补识图,两套方案可直接照做
1620 13
|
10天前
|
编解码 弹性计算 云计算
MiniMax-H3 视频生成模型 — 一键部署与使用指南
MiniMax-H3是MiniMax开源的33B全模态视频生成模型,支持文生视频、图生视频、参考生视频三种模式,原生输出2K/15秒带立体声音频视频,已原生适配ComfyUI,并可通过阿里云计算巢一键部署。(239字)
缓存 人工智能 算法
608 0
|
18天前
|
云安全 人工智能 运维
阿里云联动百位企业安全专家,共识Agent防御最佳实践
当Agent成为新员工,你的安全边界在哪里?
1981 10
阿里云联动百位企业安全专家,共识Agent防御最佳实践
|
10天前
|
人工智能 API 开发工具
2026 零基础本地 AI 漫剧完整实操教程(8G 笔记本显卡可用|附可直接复制命令与代码)
本方案提供完全离线、本地运行的漫剧全自动制作流程:RTX3060/4050 8G显卡即可驱动,涵盖Qwen写分镜→ComfyUI统一角色绘图→LTX2.3图生微动画→Qwen3-TTS本地配音→FFmpeg自动合成,全程无水印、免API、不限次。专为低显存优化,解决变脸、闪烁、爆内存三大痛点。(239字)