lxc自编题题解

· · 个人记录

无聊至极的游戏

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
string s1,s2,s;
string add(string a, string b){
    ll len=max(a.size(), b.size()),jw=0;
    string c="";
    while (a.size()<len) a='0'+a;
    while (b.size()<len) b='0'+b;
    for (ll i=len-1;i>=0;i--){
        ll t1=a[i]-'0',t2=b[i]-'0',t=t1+t2+jw;
        jw=t/10;
        t%=10;
        char ch=t+'0';
        c=ch+c;
    }
    if (jw!=0) return '1'+c;
    return c;
}
int main(){
    cin >> s1 >> s2;
    s=add(s1,s2);
    if (s.size()<=3){
        cout<<s;
        return 0;
    }
    if (s.size()%3==0)
    for (ll i=0;i<s.size();i++){
        cout<<s[i];
        if (i%3==2 && i!=s.size()-1) cout<<',';
    }
    else if (s.size()%3==1){
        cout<<s[0]<<',';
        for (ll i=1;i<s.size();i++){
            cout<<s[i];
            if (i%3==0 && i!=s.size()-1) cout<<',';
        }
    }
    else{
        cout<<s[0]<<s[1]<<',';
        for (ll i=2;i<s.size();i++){
            cout<<s[i];
            if (i%3==1 && i!=s.size()-1) cout<<',';
        }
    }
}

人机

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll n,a[1000001],m,cnt;
int main(){
    cin>>n>>m;
    for (ll i=1;i<=n;i++) cin>>a[i];
    sort(a+1,a+n+1);
    for (ll i=1;i<=n;i++){
        ll x=a[i]^m;
        if (x>a[n]) continue;
        ll pos1=lower_bound(a+1,a+n+1,x)-a;
        ll pos2=upper_bound(a+1,a+n+1,x)-a;
        cnt+=pos2-pos1;
        if (x==a[i]) cnt--;
    }
    cout<<cnt/2;
}