P9612 [CERC2019] Light Emitting Hindenburg 题解
题目大意
这个题目简化一下就是求
思路
很容易想到贪心。
题中说道输入的数在二进制下最多
另外我们还需要知道如何取出整数
代码
#include<bits/stdc++.h>
#define MAX 200005
#define int long long
using namespace std;
int n,k,a[MAX],cnt,ans,tmp;
bool pd[MAX];
signed main(){
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
cin>>n>>k;
for(int i=1;i<=n;i++)cin>>a[i];
memset(pd,1,sizeof(pd));
for(int i=29;i>=0;i--){
cnt=0;
for(int j=1;j<=n;j++){
tmp=(a[j]>>i)&1;
if(pd[j]&&tmp)cnt++;
}
if(cnt>=k){
for(int j=1;j<=n;j++){
tmp=(a[j]>>i)&1;
if(pd[j]&&!tmp)pd[j]=0;
}
ans+=(1<<i);
}
}
cout<<ans<<'\n';
return 0;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】