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

AtCoder Regular Contest 208 (Div. 2) 题解

Link

A

我以为是一个贪心题。套路地,统计 \(f_i\) 表示第 \(i\) 位上 \(1\) 的个数,由于要求我们 \(\rm or\) 的值不能改变,也就是不能出现二进制下的退位和进位,以及当前位上 \(1\) 的个数必须 \(\geq 1\)。从这里出发思考对于 Alice 或者 Bob 当前的最优解?将偶数位尽可能消耗完,把奇数位留给对面,然后依次操作消耗到对方面临全部都为 \(1\) 的情况。这样讲比较抽象,具体地,可以从 \(111 \dots 111\) 的终止情况向前考虑。得到一个不严谨的结论但是感觉很对:如果 \(f_i \gt 0\)\(f_{1 \leq i \leq n}\) 全为奇数,先手必败,反之先手必胜。但是看了一下 Editorial 发现这其实是 一种 Nim 博弈的变形,可以写的很快很干净。不会,记得补一下博弈论。

#include <bits/stdc++.h>using i64 = long long;constexpr int N = 30;void solve() {int n;std::cin >> n;std::vector<int> f(N);for (int i = 1, x; i <= n; i++) {std::cin >> x;for (int j = 0; j < N; j++) {if (x >> j & 1)f[j]++;}}for (int j = 0; j < 30; j++) {if (f[j] && !(f[j] & 1)) {std::cout << "Alice\n";return;}}std::cout << "Bob\n";
}int main() {std::ios::sync_with_stdio(false);std::cin.tie(nullptr);int t;std::cin >> t;while (t--) {solve();}return 0;
}
http://www.jsqmd.com/news/26815/

相关文章:

  • 第三十篇
  • 代码大阅读笔记
  • 第2次软件基础作业
  • 第二次软件基础作业
  • vs2017安装qt插件及安装qt插件后的设置
  • 实用指南:从0死磕全栈之Next.js Server Actions 入门实战:在服务端安全执行逻辑,告别 API 路由!
  • KeyShot许可管理故障排除步骤
  • 各式各样的Attention - -一叶知秋
  • 重塑生产力:天翼云全球首发RaaS,开启“机器人即服务”商业时代!
  • Python自然语言处理(NLP)入门
  • 【计算机视觉】分水岭搭建医学诊断
  • mysql和java获取经纬度的距离的两种方式
  • Sequence2Sequence - -一叶知秋
  • SQL索引及调优
  • Python列表 _ 创一个购物清单
  • 如何在Golang项目中集成Prometheus进行监控?
  • 第177天:信息收集篇自动项目本机导出外部打点域内通讯PillagerBloodHound
  • 如何在Linux中,为Flatpak版本的Edge浏览器导入证书
  • 2025年防火HPL板厂家权威推荐榜单:耐刮防火板/耐高温防火板 /阻燃高压装饰板源头厂家精选
  • Java 集合 “Map(1)”面试清单(含超通俗生活案例与深度理解) - 教程
  • 2025 年铸铁井盖生产厂家最新推荐榜,技术实力与市场口碑深度解析防沉降球墨/防沉降/电力/双层铸铁井盖公司推荐
  • 220kv数字化变电站保护解决方案综述[期刊理解]
  • 2025年10月VI设计公司权威推荐排行榜:排名依据包括项目交付质量、客户满意度、创新能力和市场影响力
  • 2025年0糖苏打水厂家权威推荐榜单:带帽苏打水/茉莉苏打水 /蜜桃苏打水源头厂家精选
  • Bilidown Setup 1.2.7下载
  • rpm因依赖安装失败的一次检查记录
  • 0296-Nand-机器语言
  • 0295-Nand-时序逻辑
  • [apt update docker 密钥问题]
  • 0300-Nand-表示代码