CF1365E Maximum Subsequence Value(鸽巢原理)
因为题目已知至少要k-2个
假设我们取了k个,使得答案最大
那么因为对于每个数来说至少k-2个数在这位是1
因此我们只要任意选三个数,都能保证在每一位上都有至少一个数为1
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
#include<bits/stdc++.h> using namespace std; typedef long long ll; const int N=1e5+10; ll a[N]; int main(){ int n; cin>>n; int i; for(i=1;i<=n;i++){ cin>>a[i]; } ll ans=0; if(n==1){ cout<<a[1]<<endl; } else if(n==2){ cout<<(a[1]|a[2])<<endl; } else{ int j,k; for(i=1;i<=n;i++){ for(j=i+1;j<=n;j++){ for(k=j+1;k<=n;k++) ans=max(ans,a[i]|a[j]|a[k]); } } cout<<ans<<endl; } }
没有人不辛苦,只有人不喊疼
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步