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;
}
相关推荐
jinmo_C++3 分钟前
数据结构_深入理解堆(大根堆 小根堆)与优先队列:从理论到手撕实现
java·数据结构·算法
IT199527 分钟前
OpenSSL3.5.2实现SM3数据摘要生成
算法·哈希算法·散列表
Excuse_lighttime38 分钟前
排序数组(快速排序算法)
java·数据结构·算法·leetcode·eclipse·排序算法
潘小安1 小时前
『译』迄今为止最强的 RAG 技术?Anthropic 的上下文检索与混合搜索
算法·llm·claude
kessy11 小时前
安全与续航兼备的“国密芯”——LKT6810U
算法
leo__5201 小时前
基于经验模态分解的去趋势波动分析(EMD-DFA)方法
人工智能·算法·机器学习
lzptouch2 小时前
AdaBoost(Adaptive Boosting)算法
算法·集成学习·boosting
南方的狮子先生2 小时前
【数据结构】(C++数据结构)查找算法与排序算法详解
数据结构·c++·学习·算法·排序算法·1024程序员节
前进的李工2 小时前
LeetCode hot100:560 和为k的子数组:快速统计法
python·算法·leetcode·前缀和·哈希表
在等晚安么3 小时前
力扣面试经典150题打卡
java·数据结构·算法·leetcode·面试·贪心算法