【题解】异或

题面

问题描述
题目背景

xor ⁡ \operatorname{xor} xor 好, xor ⁡ \operatorname{xor} xor 妙…

题目描述

小 L 喜欢异或,他觉得异或最好玩了。

小 Z 突然问了小 L 一个问题:

请构造出一个长度为 n n n 序列 a a a,该序列满足给出的 m m m 个条件。

每个条件形如 x y,意味着 ⨁ i = 1 x a i = y \bigoplus_{i=1}^x a_i=y i=1xai=y(其中 ⨁ \bigoplus c++ 语言中的 ^ 符号)。

小 L 脑子坏了,构造不出来,于是向聪明的你求助,你能帮帮他吗?如果没有符合条件的序列请输出 -1

输入格式

输入文件名为 xor.in

输入文件的第一行,包含两个整数 n , m n,m n,m,表示序列的长度和条件个数。

接下来 m m m 行,每行两个整数 x , y x,y x,y,意义如题面所示。

输出格式

输出文件名为 xor.out

输出文件只有一行,包含 n n n 个整数,表示你构造出的序列。

本题含有 Special Judge。
如果满足条件的序列有多个,你可以输出任意一个序列。

但是对于输出的每个元素必须满足 a i ∈ [ 1 , 2 × 1 0 9 ] a_i\in [1,2\times 10^9] ai[1,2×109]

Special Judge 将在下发文件里给出。

输入输出样例 1
xor.in
5 2
3 0
2 3
xor.out
1 2 3 1 3

见选手目录下的 xor/xor1.in 和 xor/xor1.out。

输入输出样例 1 说明

该序列必须要满足两个条件, a 1 xor ⁡ a 2 xor ⁡ a 3 = 0 a_1\operatorname{xor}a_2\operatorname{xor}a_3=0 a1xora2xora3=0 a 1 xor ⁡ a 2 = 3 a_1\operatorname{xor}a_2=3 a1xora2=3

样例 1 的输出给出了一个符合条件的序列。

输入输出样例 2
xor.in
6 1
2 4
xor.out
6 2 4 3 1 4

见选手目录下的 xor/xor2.in 和 xor/xor2.out。

输入输出样例 3
xor.in
2 2
1 2
2 2
xor.out
-1

见选手目录下的 xor/xor3.in 和 xor/xor3.out。

数据规模与约定

对于 100 % 100\% 100% 的数据, 1 ≤ n , m ≤ 1 0 6 1\le n,m\le 10^6 1n,m106 1 ≤ x ≤ n 1\le x\le n 1xn 0 ≤ y ≤ 1 0 9 0\le y\le 10^9 0y109

测试点编号 n n n m m m
1 ∼ 3 1\sim 3 13 ≤ 10 \le 10 10 ≤ 10 \le 10 10
4 ∼ 10 4\sim 10 410 ≤ 2 × 1 0 3 \le 2\times 10^3 2×103 ≤ 2 × 1 0 3 \le 2\times 10^3 2×103
11 ∼ 14 11\sim 14 1114 ≤ 1 0 5 \le 10^5 105 ≤ 1 0 5 \le 10^5 105
15 ∼ 16 15\sim 16 1516 / 1 1 1
17 ∼ 20 17\sim 20 1720 / /

保证数据随机。(是不是很良心)

Solution

az,异或?这不是字典树嘛,第一题就这么坑?

令人开心的是,全部输出 -1 珂以得15分。(看来真的是随机数据)


在这里,我们假设 ⨁ i = 1 x 1 a i = y 1 \bigoplus_{i=1}^{x_1} a_i=y_1 i=1x1ai=y1 , ⨁ i = 1 x 2

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值