当前位置: 首页 > news >正文

oa网站建设推广北京免费网站制作

oa网站建设推广,北京免费网站制作,深圳品牌网站制作报价,excel可以制作网页吗XOR Construction—CF1895D 参考文章 翻译 题目要求构造一个长度为 n n n 的数组 b b b,满足以下条件: 数组 b b b 中包含从 0 0 0 到 n − 1 n-1 n−1 的每个整数,且每个整数仅出现一次;对于 i i i 从 1 1 1 到 n − …

XOR Construction—CF1895D
参考文章

翻译

题目要求构造一个长度为 n n n 的数组 b b b,满足以下条件:

  • 数组 b b b 中包含从 0 0 0 n − 1 n-1 n1 的每个整数,且每个整数仅出现一次;
  • 对于 i i i 1 1 1 n − 1 n-1 n1 b i ⊕ b i + 1 = a i b_i \oplus b_{i+1} = a_i bibi+1=ai(其中 ⊕ \oplus 表示按位异或运算符)。

输入

第一行包含一个整数 n n n 2 ≤ n ≤ 2 ⋅ 1 0 5 2 \le n \le 2 \cdot 10^5 2n2105)。

第二行包含 n − 1 n-1 n1 个整数 a 1 , a 2 , … , a n − 1 a_1, a_2, \dots, a_{n-1} a1,a2,,an1 0 ≤ a i ≤ 2 n 0 \le a_i \le 2n 0ai2n)。

输入的附加限制条件:始终可以从给定序列 a a a 构造出至少一个有效的数组 b b b

输出

输出 n n n 个整数 b 1 , b 2 , … , b n b_1, b_2, \dots, b_n b1,b2,,bn。如果存在多个满足条件的数组,可以输出其中任意一个。

思路

b i ⊕ b i + 1 = a i b_i \oplus b_{i+1}=a_i bibi+1=ai 得:
b 1 ⊕ b 2 = a 1 b_1 \oplus b_2=a_1 b1b2=a1
b 2 ⊕ b 3 = a 2 b_2 \oplus b_3=a_2 b2b3=a2
b 3 ⊕ b 4 = a 3 b_3 \oplus b_4=a_3 b3b4=a3,异或累加得:
b 1 ⊕ b i = a 1 ⊕ a 2 ⊕ a 3 ⊕ . . . ⊕ a i − 1 b_1 \oplus b_i=a_1 \oplus a_2 \oplus a_3 \oplus ... \oplus a_{i-1} b1bi=a1a2a3...ai1,即:
b i = b 1 ⊕ a 1 ⊕ a 2 ⊕ a 3 ⊕ . . . ⊕ a i − 1 b_i=b_1 \oplus a_1 \oplus a_2 \oplus a_3 \oplus ... \oplus a_{i-1} bi=b1a1a2a3...ai1

因为题目保证有解,所以 b 1 b_1 b1 存在某个取值,使得 b b b 中元素各不相同,即 a a a 的所有前缀异或和各不相同,且不存在 0 0 0。那么我们很容易得到:
对于 b 1 b_1 b1 的任意取值, b b b 中元素都互不相同。

因为 every integer from 0 0 0 to n − 1 n-1 n1 appears in b b b exactly once,而我们已经知道了 b b b 中元素互不相同,现在的任务就是保证 b b b 中元素最小化。为了达到这一目的,我们只能修改 b 1 b_1 b1 的大小。

b 1 b_1 b1 的二进制第 k k k 位最优,使得 b 2 , . . . , b n b_2, ..., b_n b2,...,bn 中二进制第 k k k 位上的“1”的数量最小,进而使得 b b b 数组整体最小。这里使用了贪心的思路来实现(局部最优得到整体最优,二进制每一位最优得到二级制所有位最优)。

C o d e Code Code

#include <bits/stdc++.h>
#define int long long
#define sz(a) ((int)a.size())
#define all(a) a.begin(), a.end()
using namespace std;
using PII = pair<int, int>;
using i128 = __int128;
const int N = 2e5 + 10;int n;void solve(int Case) {cin >> n;vector <int> a(n + 1, 0);for (int i = 1; i <= n - 1; i ++) {cin >> a[i];a[i] ^= a[i - 1];}int b1 = 0;for (int i = 0; i <= 30; i ++) {int num1 = 0;int num0 = 0;for (int j = 1; j <= n - 1; j ++) {if (a[j] >> i & 1) {num1 ++;} else {num0 ++;}}if (num1 > num0) {b1 += 1 << i;}}cout << b1 << " ";for (int i = 2; i <= n; i ++) {cout << (a[i - 1] ^ b1) << " ";}cout << "\n";
}signed main() {cin.tie(0)->ios::sync_with_stdio(false);int T = 1;
//	cin >> T; cin.get();int Case = 0;while (++ Case <= T) solve(Case);return 0;
}
http://www.yayakq.cn/news/307423/

相关文章:

  • 中国工程建筑门户网站官网百度网站的结构
  • 网站平台建设咨询合同做app还是做网站合适
  • 网站建设规划书应当包含哪些内容做家教网站的资源是什么
  • 视频建设网站化妆品网站建设策划方案
  • 数字中国建设峰会 官方网站介绍公司的文案
  • 白银市建设管理处网站自己怎么建个网站赚钱吗
  • 汕尾住房和建设局网站首页宿迁网站建设SEO优化营销
  • 网站开发需不需要考研邯郸市
  • 下载的网站模板怎么使用常州网站建设企业网站
  • 广州建网站技术做男女之间的事情的网站
  • 做视频的素材网站做守望同人的网站
  • 上海网站建设 方案移投界seo
  • 秦皇岛网站设计公司seo外链在线工具
  • 台州公司网站外包设计上海展会2021时间
  • 长春网站排名优化网站图片设计兼职
  • 网站建设一般好久到期郑州平面设计公司排名
  • 租网站空间南京网站设计公司济南兴田德润优惠吗
  • 网站搭建软件有哪些招标网免费查看
  • 社区网站做的比较好的有哪些wordpress 最新文章展示
  • 网页设计网站制作公司wordpress调用指定相关文章
  • 中国建设规划采购网站微信网页版怎么下载
  • asp网站做文件共享上传专做企业的p2p网站
  • 海外留学网站建设方案宜昌做网站公司有哪些网站
  • 建设网站要什么手续做网站排名seo
  • 建立网站链接结构的基本方式有广州白云区哪里封了
  • 免费申请com网站网站报备查询
  • 环保类网站模板内容管理系统cms
  • 建设银行网站理财产品为何不让买wordpress 到小程序
  • 网站优化培训机构怎样创建网站的基本流程
  • 网站建设需要多钱顶呱呱网站做的怎么样