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

QOJ 1086 Bank Security Unification 题解

Link

简单题吗?考虑 DP,记 \(dp(i)\) 表示前 \(i\) 个数所能选出的最大权值,强制钦定必选 \(a_i\)。暴力枚举转移复杂度是 \(O(n^2)\)

优化?如果 \(i, j\) 中存在一个 \(i \lt k \lt j\) 使得 \(a_i \And a_k\) 的最高位和 \(a_i \And a_j\) 的相同,因为 \(a_k\) 会多产生一次贡献,同时由于二进制高位贡献必定大于低位贡献之和,所以选 \(a_k\) 绝对是更优的。枚举 \(a_i \And a_j\) 的最高位,找到前面第一个该位为 \(1\) 的数进行转移同时记录。

复杂度是 \(O(n \log A)\)

#include <bits/stdc++.h>using i64 = long long;constexpr int N = 1e6 + 7;
constexpr int B = 60;int n;
i64 ans;
int lst[B];
i64 a[N], dp[N];int main() {std::ios::sync_with_stdio(false);std::cin.tie(nullptr);std::cin >> n;for (int i = 1; i <= n; i++) {std::cin >> a[i];}memset(lst, -1, sizeof(lst));for (int i = 1; i <= n; i++) {for (int b = 0; b < B; b++) {if (lst[b] != -1) {int j = lst[b];dp[i] = std::max(dp[i], dp[j] + (a[i] & a[j]));}}for (int b = 0; b < B; b++) {if (a[i] & (1ll << b))lst[b] = i;}}for (int i = 1; i <= n; i++) {ans = std::max(ans, dp[i]);}std::cout << ans << "\n";return 0;
}
http://www.zskr.cn/news/48264.html

相关文章:

  • 2025年知名的展厅设计施工专业设计团队实力榜
  • 2025年耐用的宠物托运精选优质榜
  • 2025年深圳离婚房产律师权威推荐榜单:子女抚养权/股权分割/婚姻专业律师精选
  • 2025东莞农产品配送推荐:广东山农农业集团,新鲜蔬菜生鲜食堂专供
  • 2025年11月20万六座SUV推荐:限时权益与空间解析
  • 基础查找算法(四)哈希查找
  • 2025年口碑好的谷歌优化顶尖推荐榜
  • AT_abc425_g [ABC425G] Sum of Min of XOR
  • 2025年知名的食品添加剂厂家推荐及选择指南
  • 2025年11月工程管理软件推荐榜:斗栱云领衔全场景数字化评测
  • 基于混合蛙跳算法(SFLA)和漏桶算法的无线传感器网络(WSN)拥塞控制与分簇新方法
  • 2025年知名的网站建设网站体验排行榜
  • 2025年评价高的茶饮喝茶网红饮品最新TOP推荐
  • 20232409 2025-2026-1 《网络与系统攻防技术》实验七实验报告
  • 完整教程:【开题答辩过程】以《自习室预约微信小程序》为例,不会开题答辩的可以进来看看
  • Ruby小白学习路线 - 实践
  • 2025年专业短视频运营最新管理推荐及购买指南
  • 2025年厉害的自助售水机高评价厂家推荐榜
  • 2025年垃圾渗滤液聚丙烯酰胺源头厂家权威推荐榜单:养殖场聚丙烯酰胺/聚丙烯酰胺分子量/聚丙烯酰胺纯品源头厂家精选
  • Java实现一定时间内同时请求接口时返回相同数据
  • 协议和socket的关系
  • 2025年评价高的上海智算中心IDCE数据中心展同期活动
  • 2025年可靠的环保咨询全国优质服务推荐榜
  • 2025年国内有名的品牌设计行业影响力品牌榜
  • 2025年Sandra律师离婚团队口碑排行榜单
  • kubelet在和kube-apiserver通信不支持http2协议cup占用升高
  • 达梦数据库 查询建表语句、获取字段注释(亲测可用)
  • 2025年数控机床生产厂家推荐排行
  • 2025年优质的房屋加固用户满意度排行
  • 2025年知名的昆山绿化养护行业内口碑厂家排行榜