题意:

给定两个数\(n\)和\(x\),构造一个序列,设为\(a[l]\)(\(l\)不确定)

\(1\)、\(1\leq a[i]<2^{n}\)

\(2\)、序列中没有子序列异或和为\(0\)或\(x\)

\(3\)、\(l\)应最长

分析:

\(1\)、设前\(i\)个数字异或和为\(sum_{i}\),则对于\([i,j]\)的异或和为\(sum_{i}⨁sum_{j-1}\),所以我们可以找出\(sum\)数组,满足

\[\forall i,j,sum_{i}\oplus sum_{j}\neq 0\&\&sum_{i}\oplus sum_{j}\neq x
\]

\(2\)、异或性质有\(y⨁z=x\),则有\(y⨁x=z\),且对于任意一个数\(y\),\(z\)是惟一的。且由于\(y\)和\(z\)在二进制下是不可能超过\(2^{n}\)的,因此,相对立的\(y\)和\(z\)在\(2^{n}\)内成对存在,设\(i\)从\(1\)开始遍历到\(2^{n}\),我们与将\(i\)对立的数标记即可,我们可以得到\(sum\)数组

\(3\)、\(a[i]=sum[i]⨁sum[i-1]\),输出数组即可

#pragma GCC optimize(3, "Ofast", "inline")

#include <bits/stdc++.h>

#define start ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
#define ll long long
#define int ll
#define ls st<<1
#define rs st<<1|1
#define pii pair<int,int>
using namespace std;
const int maxn = (ll) 5e5 + 5;
const int mod = 1000000007;
const int mod2 = 1000000006;
const int inf = (ll) 1e9 + 5;
bool vis[maxn]; signed main() {
start;
int n, x;
cin >> n >> x;
vis[x] = vis[0] = true;
vector<int> ans;
ans.push_back(0);
for (int i = (1 << n) - 1; i > 0; --i)
if (!vis[i]) {
ans.push_back(i);
vis[i ^ x] = true;
}
cout << ans.size() - 1 << '\n';
for (int i = 1; i < ans.size(); ++i)
cout << (ans[i - 1] ^ ans[i]) << ' ';
return 0;
}

CodeForces 1174D Ehab and the Expected XOR Problem的更多相关文章

  1. codeforces#1157D. Ehab and the Expected XOR Problem(构造)

    题目链接: http://codeforces.com/contest/1174/problem/D 题意: 构造一个序列,满足以下条件 他的所有子段的异或值不等于$x$ $1 \le a_i< ...

  2. 【CF1174D】 Ehab and the Expected XOR Problem - 构造

    题面 Given two integers \(n\) and \(x\), construct an array that satisfies the following conditions: · ...

  3. CF D. Ehab and the Expected XOR Problem 贪心+位运算

    题中只有两个条件:任意区间异或值不等于0或m. 如果只考虑区间异或值不等于 0,则任意两个前缀异或值不能相等. 而除了不能相等之外,还需保证不能出现任意两个前缀异或值不等于m. 即 $xor[i]$^ ...

  4. Codeforces.1088D.Ehab and another another xor problem(交互 思路)

    题目链接 边颓边写了半上午A掉啦233(本来就是被无数人过掉的好吗→_→) 首先可以\(Query\)一次得到\(a,b\)的大小关系(\(c=d=0\)). 然后发现我们是可以逐位比较出\(a,b\ ...

  5. CF1174D Ehab and the Expected XOR Problem

    思路: 使用前缀和技巧进行问题转化:原数组的任意子串的异或值不能等于0或x,可以转化成前缀异或数组的任意两个元素的异或值不能等于0或x. 实现: #include <bits/stdc++.h& ...

  6. CF1174D Ehab and the Expected XOR Problem(二进制)

    做法 求出答案序列的异或前缀和\(sum_i\),\([l,r]\)子段异或和可表示为\(sum_r\bigoplus sum_{l-1}\) 故转换问题为,填\(sum\)数组,数组内的元素不为\( ...

  7. Codeforces Round #525 (Div. 2)D. Ehab and another another xor problem

    D. Ehab and another another xor problem 题目链接:https://codeforces.com/contest/1088/problem/D Descripti ...

  8. Codeforces 1088E Ehab and a component choosing problem

    Ehab and a component choosing problem 如果有多个连接件那么这几个连接件一定是一样大的, 所以我们先找到值最大的连通块这个肯定是分数的答案. dp[ i ]表示对于 ...

  9. Codeforces Round #563 (Div. 2) E. Ehab and the Expected GCD Problem

    https://codeforces.com/contest/1174/problem/E dp 好题 *(if 满足条件) 满足条件 *1 不满足条件 *0 ///这代码虽然写着方便,但是常数有点大 ...

  10. Codeforces Round #525 (Div. 2) D. Ehab and another another xor problem(待完成)

    参考资料: [1]:https://blog.csdn.net/weixin_43790474/article/details/84815383 [2]:http://www.cnblogs.com/ ...

随机推荐

  1. HTML渲染机制

    一直写页面但是很少对一些较深的运行机制的了解,这次趁休假查了一些相关的资料加上个人理解,记录一下关于html渲染的整个过程,也加深一下自己对html渲染的理解 一.先借一张图来看看html的整个加载过 ...

  2. Python相关镜像

    Python相关镜像 (1) pip使用说明 对于Python开发用户来讲,我们会经常使用pip安装软件包.但国外的源下载速度实在太慢,浪费时间且经常出现下载后安装出错问题.所以把PIP安装源替换成国 ...

  3. 面向生信分析的高性 RStudio 服务器

    因需要超大内存的拼接/比对/表达量计算发愁? 为了使用组里的服务器而被困在实验室? 浪费大量的时间龟速下载 NCBI 的数据? 快来看看云筏 HPC 吧! https://my.cloudraft.c ...

  4. JuiceFS 社区版 v1.1- Beta 发布,新增五个实用功能

    我们很高兴地宣布 JuiceFS v1.1-Beta 版本正式发布啦!这是一个功能丰富的版本,带来了许多实用的新功能和改进.在这个版本中我们新增了以下功能: 目录配额:为目录设置配额限制,控制其大小和 ...

  5. Windows 10 开启子系统Ubuntu

    卸载原有的wsl 分发子系统 # 查看已安装的wsl子系统 wsl --list # 依次删除wsl 子系统 wsl --unregister <子系统名称> 结果 安装子系统Ubuntu ...

  6. jQuery控制图片墙自动+手动淡入淡出切换

    先来看一下效果:http://39.105.101.122/myhtml/Jquery/img_switch/img_switch.html(甄嬛的眼睛有木有变大) 添加一个div(class=con ...

  7. javaSE 温故而知新

    重温 javaSE 前言:有地基才能有高楼大厦 目录 重温 javaSE 认识java Java基础 1.数据类型 1.1 基本数据类型: 1.2 引用数据类型 1.3 基本数据类型的包装类 1.4 ...

  8. Python 爬虫实战:驾驭数据洪流,揭秘网页深处

    爬虫,这个经常被人提到的词,是对数据收集过程的一种形象化描述.特别是在Python语言中,由于其丰富的库资源和良好的易用性,使得其成为编写爬虫的绝佳选择.本文将从基础知识开始,深入浅出地讲解Pytho ...

  9. Python中 sys.argv[]用法详解

    sys.argv[0]表示代码本身文件路径. sys.argv[]是一个从程序外部获取参数的桥梁,从外部取得的参数可以是多个,所以获得的是一个列表(list),也就是说sys.argv其实可以看作是一 ...

  10. AutoreleasePool 的总结

    1.创建和释放时机问题 App启动后,苹果在主线程 RunLoop 里注册了两个 Observer,其回调都是 _wrapRunLoopWithAutoreleasePoolHandler(). 第一 ...