加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

EZOJ #373排序

发布时间:2020-12-14 05:07:04 所属栏目:大数据 来源:网络整理
导读:分析 它居然真的是个nlog^3暴力?! 两个数在加小于min(lowbit(x),lowbit(y))的数时对他们的奇偶性不影响 因此每次加上min(lowbit(x),lowbit(y))判断此时的奇偶性 直接排序即可 代码 #includebits/stdc++.h using namespace std; #define int long long int

分析

它居然真的是个nlog^3暴力?!

两个数在加小于min(lowbit(x),lowbit(y))的数时对他们的奇偶性不影响

因此每次加上min(lowbit(x),lowbit(y))判断此时的奇偶性

直接排序即可

代码

#include<bits/stdc++.h>
using namespace std; #define int long long 
int a[100100],n; inline int lb(int x){return x&(-x);} inline int cnt(int x){int res=0;while(x)res+=(x&1),x>>=1;return res;} inline bool cmp(int x,int y){while((cnt(x)&1)==(cnt(y)&1)){int t=min(lb(x),lb(y));x+=t,y+=t;}return !(cnt(x)&1);} signed main(){ int i,j,k; scanf("%lld",&n); for(i=1;i<=n;i++)scanf("%lld",&a[i]); sort(a+1,a+n+1,cmp); for(i=1;i<=n;i++)printf("%lld ",a[i]); return 0; }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读