Acwing第 64 场周赛【未完结】

https://www.acwing.com/activity/content/2157/

4506. 三国语言

#include<bits/stdc++.h>
using namespace std;
int main(void)
{
    
    
    int n; cin>>n;
    while(n--)
    {
    
    
        string s; cin>>s;
        if(s.size()>=2&&s.substr(s.size()-2)=="po") puts("FILIPINO");
        else if(s.size()>=5&&s.substr(s.size()-5)=="mnida") puts("KOREAN");
        else puts("JAPANESE");
    }
    return 0;
}

4507. 子数组异或和【前缀和】

在这里插入图片描述
区间异或必考虑前缀和。推式子会发现就是区间的异或和为零。
就转化成了求其前面同奇偶性的下标相同的前缀的个数统计。

#include<bits/stdc++.h>
using namespace std;
const int N=1e5*3+10;
long long int a[N],s[N],n,cnt;
int main(void)
{
    
    
    cin>>n;
    for(int i=1;i<=n;i++) cin>>a[i],s[i]=s[i-1]^a[i];
    map<int,long long>mp[2];
    mp[0][0]++;
    for(int i=1;i<=n;i++)
    {
    
    
        cnt+=mp[i&1][s[i]];//同奇偶性的
        mp[i&1][s[i]]++;
    }
    cout<<cnt;
    return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_46527915/article/details/126338678