zoukankan      html  css  js  c++  java
  • Codeforces Round #618 (Div. 1)A(观察规律)

    实际上函数值为x&(-y)

    答案仅和第一个数字放谁有关

     1 #define HAVE_STRUCT_TIMESPEC
     2 #include <bits/stdc++.h>
     3 using namespace std;
     4 int a[200007];
     5 int b[200007][37];
     6 int flag[67];
     7 int main(){
     8     ios::sync_with_stdio(false);
     9     cin.tie(NULL);
    10     cout.tie(NULL);
    11     int n;
    12     cin>>n;
    13     int start=1;
    14     int mx=0;
    15     for(int i=1;i<=n;++i){
    16         cin>>a[i];
    17         int temp=a[i];
    18         while(temp){
    19             b[i][++b[i][0]]=temp%2;//转化为二进制
    20             temp>>=1;
    21         }
    22         for(int j=1;j<=b[i][0];++j)
    23             if(b[i][j]!=0)
    24                 ++flag[j];//记录有多少数字这一位上是1
    25         a[n+i]=a[i];
    26     }
    27     for(int i=1;i<=n;++i){
    28         int he=0;
    29         for(int j=1;j<=b[i][0];++j)
    30             if(b[i][j]&&flag[j]==1)//如果仅有a[i]这一位上为1,那么它放在顺序的第一个时可以为总和做出1<<(j-1)的贡献
    31                 he|=(1ll<<(j-1));
    32         if(he>mx){//更新最大值
    33             mx=he;
    34             start=i;
    35         }
    36     }
    37     for(int i=start;i<=n-1+start;++i)
    38         cout<<a[i]<<" ";
    39     return 0;
    40 }
    保持热爱 不懈努力 不试试看怎么知道会失败呢(划掉) 世上无难事 只要肯放弃(划掉)
  • 相关阅读:
    分布式系统学习一-概念篇
    JAVA多线程学习九-原子性操作类的应用
    JAVA多线程学习八-多个线程之间共享数据的方式
    JAVA多线程学习七-线程池
    vue 工作随笔
    智能云课堂整理
    mysql
    模板引挚 jade ejs
    node实战小例子
    昭山欢node资料学习笔记
  • 原文地址:https://www.cnblogs.com/ldudxy/p/12292719.html
Copyright © 2011-2022 走看看