B题求异或最小值,即同或最大值(过了94,哭了)Help

#include<iostream>

#include<map>

#include<algorithm>

using namespace std;

unsigned int a[200020],ni=0x3f3f3f3f;

unsigned int n,m,pan=0;

map<unsigned int,unsigned int> mp;

int main()

{

cin>>n>>m;

for(long long i=1;i<=n;i++)

{

cin>>a[i];

mp[a[i]]++;

if(mp[a[i]]>=2){pan=1;}

}

sort(a+1,a+1+n);

if(pan)cout<<(1<<m)-1<<endl;

else{

for(long long i=1;i<n;i++)

{

ni=min(ni,a[i]^a[i+1]);

}

cout<<(1<<m)-1-ni<<endl;

}

}

全部评论
把unsigned int都开成long long 还要把ni=0x3f3f3f3f再加一个3f就可以了
3 回复 分享
发布于 2024-08-08 10:55 湖南
+1
2 回复 分享
发布于 2024-08-07 17:29 湖南
刚刚解释的好像不对,是不能控制位数的原因
点赞 回复 分享
发布于 2024-08-07 18:02 河南
异或最小不一定同或最大 例如: 4 3 1 1 1 1 1
点赞 回复 分享
发布于 2024-08-07 17:55 河南

相关推荐

07-07 11:33
江南大学 Java
已经在暑假实习了&nbsp;,没有明确说有hc,纠结实习到八月份会不会有点影响秋招毕竟感觉今年好多提前批
程序员小白条:92的话准备提前批,其他没必要,没面试机会的,而且你要准备充分,尤其八股和算法题
点赞 评论 收藏
分享
评论
3
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务