cf good bye 2019 C

令和为 s u m sum ,异或和为 X X .
则有 s u m + s u m + ( s u m + X ) = 2 ( s u m + X ) sum+sum+(sum+X)=2*(sum+X) X X ( X + s u m ) = X + s u m X\oplus X\oplus (X+sum)=X+sum
加入的两个数为 X X s u m sum

#include<bits/stdc++.h>
using namespace std;
int main(){
    //freopen("in.txt","r",stdin);
    ios::sync_with_stdio(false);
    cin.tie(0);cout.tie(0);
    int t;
    cin>>t;
    while(t--){
        int n;
        long long bb;
        cin>>n;
        long long sum=0 ,x=0;
        for(int i=1;i<=n;i++){
            cin>>bb;
            sum+=bb;
            x^=bb;
        }
        cout<<2<<'\n';
        cout<<x<<' '<<sum+x<<'\n';
    }
}
发布了16 篇原创文章 · 获赞 9 · 访问量 760

猜你喜欢

转载自blog.csdn.net/weixin_42859385/article/details/104033610