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

#贪心,高维前缀和,状压dp#CF1208F Bits And Pieces ARC100E - Or Plus Max

ARC100E - Or Plus Max

题目

对于每个 \(k\in (0,2^n)\),求 \(a_i+a_j(0\leq i<j\leq k)\) 的最大值。


分析

可以发现 \(\max_{i\& k==i}a_i\) 可以通过高维前缀和实现,而另一个相当于是次大值,

因此维护最大值和次大值加起来再进行前缀最大值即可。


代码

#include <iostream>
#include <algorithm>
using namespace std;
const int N=262144;
int n,mx[N],se[N];
int main(){ios::sync_with_stdio(0);cin.tie(0),cout.tie(0);cin>>n;for (int i=0;i<(1<<n);++i) cin>>mx[i],se[i]=0xc0c0c0c0;for (int j=0;j<n;++j)for (int i=1;i<(1<<n);++i)if ((i>>j)&1){if (mx[i]<mx[i^(1<<j)]) se[i]=mx[i],mx[i]=mx[i^(1<<j)];else if (se[i]<mx[i^(1<<j)]) se[i]=mx[i^(1<<j)];if (mx[i]<se[i^(1<<j)]) se[i]=mx[i],mx[i]=se[i^(1<<j)];else if (se[i]<se[i^(1<<j)]) se[i]=se[i^(1<<j)];}mx[0]+=se[0];for (int i=1;i<(1<<n);++i){mx[i]=max(mx[i-1],mx[i]+se[i]);cout<<mx[i]<<'\n';}return 0;
}

CF1208F Bits And Pieces

题目

\(1\sim n\) 中,找出三元组 \((i,j,k),i<j<k\),求 \(a_i|(a_j\&a_k)\) 的最大值。


分析

这个表达式全是位运算,我们可以类似线性基一样贪心,那么当判定答案为 \(ans\) 时,对于每个 \(a_i\)

检验 \(ans\ xor\ (ans\ \&\ a_i)\) 是否能在下标超过 \(i\) 的两个数所表示,那么相当于是上一题的下标和值调换,做法是类似的,判定次大下标是否超过 \(i\)


代码

#include <iostream>
#include <algorithm>
using namespace std;
const int N=2097152;
int n,mx[N],se[N],m,MX,a[N],ans;
int main(){ios::sync_with_stdio(0);cin.tie(0),cout.tie(0);cin>>n;for (int i=1;i<=n;++i){cin>>a[i];if (mx[a[i]]) se[a[i]]=mx[a[i]],mx[a[i]]=i;else mx[a[i]]=i;MX=MX<a[i]?a[i]:MX;}for (m=1;(1<<m)<=MX;++m);for (int j=0;j<m;++j)for (int i=0;i<(1<<m);++i)if ((i>>j)&1){if (mx[i^(1<<j)]<mx[i]) se[i^(1<<j)]=mx[i^(1<<j)],mx[i^(1<<j)]=mx[i];else if (se[i^(1<<j)]<mx[i]) se[i^(1<<j)]=mx[i];if (mx[i^(1<<j)]<se[i]) se[i^(1<<j)]=mx[i^(1<<j)],mx[i^(1<<j)]=se[i];else if (se[i^(1<<j)]<se[i]) se[i^(1<<j)]=se[i];}for (int i=m-1;~i;--i){int now=ans|(1<<i);for (int j=1;j<=n;++j)if (se[now^(now&a[j])]>j){ans|=1<<i;break;}}cout<<ans;return 0;
}
http://www.gsyq.cn/news/76403.html

相关文章:

  • 20232303 2025-2026-1 《网络与系统攻防技术》实验八实验报告
  • 251208
  • 模法
  • 12.8
  • OEM 5K0905861C ELV Emulator for 2014-2015 VW Sagitar/Lavida/Tiguan – Fix Steering Lock Issues
  • 科研人必藏!生物医学高分顶刊合集
  • Polaris.AI Programming Contest 2025(AtCoder Beginner Contest 429)
  • 折腾笔记[39]-使用Scala3的Storch计算
  • day03 指针应用和文件操作
  • ZenMux 企业级大模型聚合平台,免费试用模型 Gemini 3 Pro
  • 102302139 尚子骐 数据采集与融合作业4
  • vsc_backgroud_css小记
  • 每日3题 2(暂鸽)
  • 为什么使用 telnet 命令可以探测目标主机的某个端口是否开放?
  • 2025成都/西南地区营销策划服务商 TOP5 评测!实战案例驱动 + 系统服务权威榜单发布,赋能品牌资产与业绩双增长
  • # 2025ISCTF
  • SGLang 的 TP 模式浅析 - -银光
  • 2025年下半年上海CE认证服务商综合评测与选择指南
  • 2025年12月海南财税代理,海南税务合规财税,海口财税公司品牌推荐榜,彰显专业财税服务实力
  • solid设计原则
  • 2025.12.7总结
  • OI 带给了我什么
  • 2025最新宁德锂电池组装服务商/厂家TOP5评测!技术创新+定制方案权威榜单发布,赋能新能源动力生态升级
  • HRSword_v5.0.1.1 sysdiag.sys
  • 12.5 MyBatis
  • 新同学培训有感
  • 2025最新储能电池组装厂家TOP5评测!技术创新+定制方案权威榜单发布,赋能新能源产业高质量发展
  • DFAT—Dual Focus-Attention Transformer for Robust Point Cloud Registration
  • 某中心语音AI前沿技术在SLT会议的研究突破
  • 2025最新电动车锂电池品牌/厂家TOP5评测!技术创新+安全效能权威榜单发布,赋能新能源出行生态升级