D. Co-growing Sequence

传送门:Problem - 1547D - Codeforces

题意:给定一个 数组 a , 构造一个数组 b ,使得 ( a[i] ^ b[i] ) & ( a[i + 1] ^ b[ i + 1] ) == a[i] ^ b[i]

思路:(二进制题目)

设 a[i] ^ b[i] = t

我们要让 t 的二进制数位为 1 如果 a[i +1] ^ b[i +1] 此时二进制数位为 0 的话,就必须要异或 这一位为1,如果此时为1的话,就不用

主体代码:

cpp 复制代码
void solve()
{
	int n; cin >> n;
    vector<int> a(n + 1);
    for( int i = 1 ; i <= n ; i++ ) cin >> a[i];
    vector<int> b(n + 1);
    for( int i = 2 ; i <= n ; i++ )
    {
        int t = (a[i - 1] ^ b[i - 1]);
        int num = 0;
        for( int j = 0 ; j <= 60 ; j++ )
        {
            if( (t >> j & 1) && !(a[i] >> j & 1 ) )
            {
                num |= ( 1 << j );
            }
        }
        b[i] = num;
    }
    for(int i = 1 ; i <= n ; i++ )
    {
        cout << b[i] << " ";
    }
    cout << endl;
}
相关推荐
故事和你9121 小时前
sdut-程序设计基础Ⅰ-实验二选择结构(1-8)
大数据·开发语言·数据结构·c++·算法·优化·编译原理
努力学算法的蒟蒻21 小时前
day106(3.7)——leetcode面试经典150
算法·leetcode·面试
Σίσυφος190021 小时前
PCL聚类 之 欧式聚类(最常用)
算法·机器学习·聚类
所谓伊人,在水一方3331 天前
【Python数据科学实战之路】第12章 | 无监督学习算法实战:聚类与降维的奥秘
python·sql·学习·算法·信息可视化·聚类
像素猎人1 天前
数据结构之顺序表的插入+删除+查找+修改操作【主函数一步一输出,代码更加清晰直观】
数据结构·c++·算法
季明洵1 天前
二叉树的最小深度、完全二叉树的节点个数、平衡二叉树、路径总和、从中序与后序遍历序列构造二叉树
java·数据结构·算法·leetcode·二叉树
想进个大厂1 天前
代码随想录day63 64 65 66 图论08 09 10 11
c++·算法·图论
云泽8081 天前
蓝桥杯算法精讲:双指针算法四大经典例题深度剖析
算法·职场和发展·蓝桥杯
小龙报1 天前
【算法通关指南:算法基础篇】二分算法: 1.A-B 数对 2.烦恼的高考志愿
c语言·开发语言·数据结构·c++·vscode·算法·二分
yong99901 天前
NNDA、PDA、JPDA、IMM数据关联算法MATLAB实现
开发语言·算法·matlab