题意:一个数组,重新打乱后前缀异或和递增。问这样的排列。

将所有元素按照二进制最高位分组。每次选当前前缀和sum的二进制最低的0位,再从分组中挑一个作为答案。先放首1在较低位的再放首1在较高位的总是可行的。首1都在同一位的先放哪个都是一样的。

//#pragma comment(linker,"/STACK:1024000000,1024000000")
#include<iostream>
#include<cstdio>
#include<string>
#include<cstring>
#include<vector>
#include<cmath>
#include<queue>
#include<stack>
#include<map>
#include<set>
#include<algorithm>
#include <stack>
#include <bitset>
using namespace std;
const int SZ=100010,INF=0x7FFFFFFF;
typedef long long lon;
lon n,arr[SZ],ans[SZ];
vector<lon> vct[70];
lon one=1;void init()
{cin>>n;for(lon i=0;i<n;++i){cin>>arr[i];for(lon j=62;j>=0;--j){if(arr[i]&(one<<j)){vct[j].push_back(arr[i]);break;}}}
}bool work()
{lon cur=0;for(lon i=0;i<n;++i){bool ok=0;for(lon j=0;j<62;++j){if((cur&(one<<j))==0&&vct[j].size()){cur^=(ans[i]=vct[j].back());vct[j].pop_back();ok=1;break;}}if(!ok)return 0;}return 1;
}int main()
{std::ios::sync_with_stdio(0);//freopen("d:\\1.txt","r",stdin); //for(;scanf("%d",&n)!=EOF;)
    {init();if(!work())cout<<"No"<<endl;else{cout<<"Yes"<<endl;for(lon i=0;i<n;++i){if(i)cout<<" ";cout<<ans[i];}cout<<endl;}}return 0;
}

转载于:https://www.cnblogs.com/gaudar/p/9715299.html

codeforces 966c//Big Secret// Codeforces Round #477 (Div. 1)相关推荐

  1. Codeforces A. XXXXX (数学 / 双指针) (Round #649 Div.2)

    传送门 题意: 有一个初始数组a,找到起最大的连续子序列的和不能被x整除. 思路: 先利用所有数与x的余数求和sum,若sum为0表示整个序列都是x的倍数,找不到可行子序列. 若sum % x != ...

  2. Codeforces Round #694 (Div. 1 + Div2)(A ~ H,8题全,超高质量题解)【每日亿题】2021/2/1、2/2

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 目录 [每日亿题]Codeforces Round #694 (Div. 1 + Div2)(A ~ ...

  3. Codeforces Round #506 (Div. 3)

    Codeforces Round #506 (Div. 3) 实习期间事不多,对div3 面向题解和数据编程了一波 A. Many Equal Substrings 题目链接 A题就是找后缀和前缀重合 ...

  4. Codeforces Round #563 (Div. 2)/CF1174

    Codeforces Round #563 (Div. 2)/CF1174 CF1174A Ehab Fails to Be Thanos 其实就是要\(\sum\limits_{i=1}^n a_i ...

  5. 构造 Codeforces Round #302 (Div. 2) B Sea and Islands

    题目传送门 1 /* 2 题意:在n^n的海洋里是否有k块陆地 3 构造算法:按奇偶性来判断,k小于等于所有点数的一半,交叉输出L/S 4 输出完k个L后,之后全部输出S:) 5 5 10 的例子可以 ...

  6. Codeforces 504 A (Round #285 div.1 A) Misha and Forest

    Codeforces Round #285 (Div.1) A Misha and Forest 水题水题水-- 题意:给你一些点,给出他们连通了多少个点以及这些点的下标的异或值,让你找出一个图 题解 ...

  7. Codeforces Round #696 (Div. 2) (A ~ E)超高质量题解(每日训练 Day.16 )

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Codeforces Round #696 (Div. 2) (A ~ E)超高质量题解 比赛链接:h ...

  8. Codeforces Round #712 Div.2(A ~ F) 超高质量题解(每日训练 Day.15 )

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Codeforces Round #712 Div.2(A ~ F) 题解 比赛链接:https:// ...

  9. Codeforces Round #701 (Div. 2) A ~ F ,6题全,超高质量良心题解【每日亿题】2021/2/13

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 目录 A - Add and Divide B - Replace and Keep Sorted C ...

最新文章

  1. 医学影像阅读/分析软件FSLeyes安装避坑+核磁共振影像数据处理
  2. oracle 中update多个字段
  3. 年底了,如何准备 Java 初级和高级的技术面试?
  4. python把c语言的.h文件转为c++的.cpp和.h文件
  5. PendingIntent与Intent的区别
  6. 为什么说云原生会成为未来企业技术变迁的趋势
  7. 解决Vue报错:Uncaught (in promise) NavigationDuplicated: Avoided redundant navigation to current location
  8. 连接MySQL和连接文件夹区别,对数据库连接问题的一点总结
  9. 使用javascript及java对Cookie的读写
  10. 5. 高性能MySQL --- 创建高性能索引
  11. html_jQuery_ajax
  12. 横向滑动页面,导航条滑动居中的 js 实现思路
  13. H5 移动端浏览器调用微信的分享功能
  14. Python Scapy(2.3.1)文档学习(四):高级用法
  15. Testin融资后首个举措:推出O2O一站式测试服务
  16. 详细介绍GPIO、I2C、SPI通讯原理以及物理层原理
  17. faile什么意思_faile to是什么意思
  18. JavaFX调用虚拟键盘
  19. 10个最佳iOS Photo App模板
  20. 我的世界皮肤站披风不加载或不更新问题

热门文章

  1. oracle 如何添加数据文件,在Oracle数据库里插入excel文件数据的步骤
  2. oracle10g 安装手册 linux,oracle10g在x86linux上的安装步骤
  3. 戏说前端 JavaScript 之『防抖节流』基础知识
  4. asp.net使用include包含文件中文乱码_C++: 编写自己的头文件
  5. tar、tar.gz、tar.Z、tgz、bz2、bin软件包的安装
  6. mysql java dbutil_Java -- DBUtils 框架 操作MySQL数据库
  7. 如何加强站内搜索功能
  8. JavaWeb——jsp原理
  9. 全面使用禅道做敏捷开发的规范化管理分享
  10. 【java学习之路】(javaWeb篇)007.正则表达式专题