2023年多校联训NOIP层测试5

T1 糖果 \(10pts\)


  • 首先考虑一些异或的性质:

    • 归零率:\(a \bigoplus a=0\)
    • 恒等律:\(a \bigoplus 0=a\)
    • 交换律:\(a \bigoplus b=b \bigoplus a\)
    • 结合律: \(a \bigoplus b \bigoplus c=a \bigoplus (b \bigoplus c)=(a \bigoplus b) \bigoplus c\)
    • 自反性(异或的逆运算为它本身): \(a \bigoplus b \bigoplus b=a\)
  • 令 \(sum[i]= \bigoplus \limits_{j=1}^i a_j\) ,进行前缀和优化,然后进行分类讨论:
    • 若 \(sum[n]=0\) ,利用归零率,说明一定可以把这些糖果分成两段,使得每段糖果的美味度相同。
    • 若 \(sum[n] \ne 0\) ,利用归零率和恒等率,若存在一个 \(l,r\) ,满足 \(1\le l<r \le n\) ,且 \(sum[l]=sum[n],sum[r]=0\) ,即 $ \bigoplus \limits_{i=1}^l a_i= \bigoplus \limits_{i=l+1}^r a_i= \bigoplus \limits_{i=r+1}^n a_i$ ,说明可以把这些糖果分成 \([1,l],[l+1,r],[r+1,n]\) 三段,使得每段糖果的美味度相同。
  • 枚举即可,复杂度\(O(Tn)\)
    #include<bits/stdc++.h>
    using namespace std;
    #define ll long long
    #define sort stable_sort
    #define endl '\n'
    int a[100010],sum[100010];
    int main()
    {
    int t,n,i,j,k,l,r;
    cin>>t;
    for(i=1;i<=t;i++)
    {
    cin>>n;
    l=r=0;//初始化
    for(j=1;j<=n;j++)
    {
    cin>>a[j];
    sum[j]=sum[j-1]^a[j];
    }
    if(sum[n]==0)
    {
    cout<<"YES"<<endl;
    }
    else
    {
    for(j=1;j<=n;j++)
    {
    if(sum[j]==sum[n])
    {
    l=j;
    break;
    }
    }
    for(j=n;j>=1;j--)
    {
    if(sum[j]==0)
    {
    r=j;
    break;
    }
    }
    if(l!=0&&r!=0&&l<r)
    {
    cout<<"YES"<<endl;
    }
    else
    {
    cout<<"NO"<<endl;
    }
    }
    }
    return 0;
    }

T2 魔法仪式 \(0pts\)

  • 没听懂讲评,暂时咕了。

T3 独特的数组 \(0pts\)

  • 没听懂讲评,暂时咕了。

T4 约会 \(5pts\)

  • 没听懂讲评,暂时咕了。

后记

今天下发的题解写了跟写了似的。

2023年多校联训NOIP层测试5的更多相关文章

  1. Contest1893 - 2019年6月多校联训b层测试1

    传送门 密码:waxadyt T1 暴力 对于任意相邻的两个值 中间能到达的最大高度是固定的 加上头尾,判一下就好了 代码//感谢Th Au K #include<bits/stdc++.h&g ...

  2. 2019.8.3 [HZOI]NOIP模拟测试12 A. 斐波那契(fibonacci)

    2019.8.3 [HZOI]NOIP模拟测试12 A. 斐波那契(fibonacci) 全场比赛题解:https://pan.baidu.com/s/1eSAMuXk 找规律 找两个节点的lca,需 ...

  3. 「题解」NOIP模拟测试题解乱写II(36)

    毕竟考得太频繁了于是不可能每次考试都写题解.(我解释个什么劲啊又没有人看) 甚至有的题目都没有改掉.跑过来写题解一方面是总结,另一方面也是放松了. NOIP模拟测试36 T1字符 这题我完全懵逼了.就 ...

  4. 2019.8.3 [HZOI]NOIP模拟测试12 C. 分组

    2019.8.3 [HZOI]NOIP模拟测试12 C. 分组 全场比赛题解:https://pan.baidu.com/s/1eSAMuXk 刚看这题觉得很难,于是数据点分治 k只有1和2两种,分别 ...

  5. 2019.8.3 [HZOI]NOIP模拟测试12 B. 数颜色

    2019.8.3 [HZOI]NOIP模拟测试12 B. 数颜色 全场比赛题解:https://pan.baidu.com/s/1eSAMuXk 数据结构学傻的做法: 对每种颜色开动态开点线段树直接维 ...

  6. NOIP模拟测试17&18

    NOIP模拟测试17&18 17-T1 给定一个序列,选取其中一个闭区间,使得其中每个元素可以在重新排列后成为一个等比数列的子序列,问区间最长是? 特判比值为1的情况,预处理比值2~1000的 ...

  7. 三校联训 【NOIP模拟】寻找

    题面 “我有个愿望,我希望穿越一切找到你.” 这是个二维平面世界,平面上有n个特殊的果实,我从(0,0)点出发,希望得到尽量多的果实,但是出于某种特殊的原因,我的运动方式只有三种(假设当前我在(x,y ...

  8. [考试反思]0714/0716,NOIP模拟测试3/4

    这几天时间比较紧啊(其实只是我效率有点低我在考虑要不要坐到后面去吹空调) 但是不管怎么说,考试反思还是要写的吧. 第三次考试反思没写总感觉缺了点什么,但是题都刷不完... 一进图论看他们刷题好快啊为什 ...

  9. [k8s]nginx-ingress配置4/7层测试

    基本原理 default-backend提供了2个功能: 1. 404报错页面 2. healthz页面 # Any image is permissable as long as: # 1. It ...

  10. 2019.8.3 NOIP模拟测试12 反思总结【P3938 斐波那契,P3939 数颜色,P3940 分组】

    [题解在下面] 早上5:50,Gekoo同学来到机房并表态:“打暴力,打暴力就对了,打出来我就赢了.” 我:深以为然. (这是个伏笔) 据说hzoi的人还差两次考试[现在是一次了]就要重新分配机房,不 ...

随机推荐

  1. df -h与df -i的区别

    一. df命令详解: linux中df命令的功能是用来检查linux服务器的文件系统的磁盘空间占用情况.可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息 -a 全部文件系统列表 -h ...

  2. Django-Import-Export插件关于外键的处理

    前言 Django-Import-Export是一款很好用很方便的Django数据导出导入插件,可以和DjangoAdmin管理后台完美集成,只需要少量的代码配置即可方便实现你要的多种格式导出导入,关 ...

  3. [转帖]Kubernetes 1.23:IPv4/IPv6 双协议栈网络达到 GA

    https://kubernetes.io/zh-cn/blog/2021/12/08/dual-stack-networking-ga/#:~:text=Kubernetes%201.23%EF%B ...

  4. [转帖]高性能异步io机制:io_uring

    文章目录 1.性能测试 1.1.FIO 1.2.rust_echo_benc 2.io_uring 2.1.io_uring_setup 2.2.io_uring_enter 2.3.io_uring ...

  5. [转帖]Linux系统awk命令详解

    AWK 是一种处理文本文件的语言,是一个强大的文本分析工具. 之所以叫 AWK 是因为其取了三位创始人 Alfred Aho,Peter Weinberger, 和 Brian Kernighan 的 ...

  6. IPV6的简单学习与整理

    背景 大概2018年时曾经突击学习过一段时间IPV6 当时没太有写文档的习惯,导致这边没有成型的记录了. 今天又有项目要求使用IPV6, 想了想就将之前学习的部分 还有想继续学习提高的部分进行一下总结 ...

  7. ES6 Array.fiill()的用法

    简单使用 // arr.fill(value, start, end) // value填充的值 // start填充的起始位置包含 // end填充的结束值,不包含,如果省略这个参数,表示从起始位置 ...

  8. 使用boot.iso镜像安装Oracle Linux 8

    本文记录使用boot.iso镜像安装Oracle Linux 8. 镜像下载 Oracle Linux 8 boot镜像可以从这里下载. 安装 Oracle Linux 8 boot镜像安装系统跟使用 ...

  9. DES加密和base64加密

    DES简介:参考知乎 https://www.zhihu.com/question/36767829 和博客https://www.cnblogs.com/idreamo/p/9333753.html ...

  10. TienChin 引入 MyBatisPlus

    在父工程当中添加版本号,统一管理: <mybatis-plus.version>3.5.1</mybatis-plus.version> 在父工程当中添加 MyBatisPlu ...