题目传送门

题意简述:

(就是连环的意思)

唔,这道题考场上写了个什么神仙做法,数据太水了居然过了:

//
#include<cstdio>
#include<algorithm>
#include<iostream>
#include<vector>
#include<queue>
#include<cstring>
using namespace std;
#define MAXN 10005
#define LL long long
#define INF 0x3f3f3f3f
int n,a,ans;
int main()
{
scanf("%d",&n);
for(int i=;i<=n;i++)
{
scanf("%d",&a);
ans^=a;
}
if(ans==) printf("Yes\n");
else printf("No\n");
return ;
}

反例还是很容易构造的吧,比如$n$不能被$3$整除的情况(看了下面的分析就可以轻而易举地举出好多反例来了)

分析:

1.左右两个数的异或值等于中间的数,那么任意相邻三个数的异或和一定为$0$

2.考虑一般情况,设序列的前$3$个数为$xyz$,且$x^y^z==0$,那么如果要满足任意三个相邻的数的异或和都为0,则下一个数只能为$x$,因为要满足$y^z^这个数==0$,依次推下去,可以发现$n%3==0$时,比如$xyzxyz$在连成环的情况下可以符合要求,反之不能,比如$xyzxy$。也就是这三个数的个数一定要是相等,且均为$n/3$

2.考虑特殊情况,上一种情况中的$xyz$中有2个数相等的时候,剩下那一个数只能为$0$,也就是$0$的个数为$n/3$,另一个数的个数为$n/3*2$。

3.最最特殊的情况,就是全部都是$0$的情况,这种情况不需要判断$n%3==0$。

但是,

做这道题的时候该犯的错误,不该犯的错误都犯到位了。

1.没有开ll

2.多组数据不清零(线下考试的时候由于AT数据过于水,重造了数据,没有绑点,但是多组数据)

3.在找不一样的数的时候,用的下面的式子判断,但是,要记得赋$a[0]=-1或INF$,否则在第一个数是0的时候会炸掉。

 //不开ll见祖宗
#include<iostream>
#include<string>
#include<cstdio>
#include<cstring>
#include<map>
#include<algorithm>
using namespace std;
#define N 100005
#define ll long long
#define MOD 1000000007
#define INF 0x3f3f3f3f
int n;
ll a[N],num[];
int cnt[],tot;
int main()
{
//freopen("circle.in","r",stdin);
//freopen("circle.out","w",stdout);
int T;scanf("%d",&T);
while(T--)
{
//f**k多组数据不清零
tot=;
cnt[]=cnt[]=cnt[]=;
num[]=num[]=num[]=;
bool f=;
scanf("%d",&n);
for(int i=;i<=n;i++)
{
scanf("%lld",&a[i]);
if(a[i]!=) f=;
}
if(f==)
{//全部都是0
puts("Yes");
continue;
}
sort(a+,a+n+);
a[]=INF;
for(int i=;i<=n;i++)
{
if(a[i]!=a[i-])
cnt[++tot]++,num[tot]=a[i];
else cnt[tot]++;
if(tot>)
{
puts("No");
f=;//混用变量
break;
}
}
if(f==) continue;
if(n%==)
{
if(tot==&&(num[]^num[]^num[])==&&cnt[]==n/&&cnt[]==n/&&cnt[]==n/)
{
puts("Yes");
continue;
}
if(tot==&&num[]==&&cnt[]==n/&&cnt[]==n/*)
{
puts("Yes");
continue;
}
}
puts("No");
}
return ;
}

Code

AGC035 A - XOR Circle【分析】的更多相关文章

  1. xor和gates的专杀脚本

    前段时间的一次样本,需要给出专杀,应急中遇到的是linux中比较常见的两个家族gates和xor. 首先是xor的专杀脚本,xor样本查杀的时候需要注意的是样本的主进程和子进程相互保护(详见之前的xo ...

  2. 2115: [Wc2011] Xor

    2115: [Wc2011] Xor 链接 分析: 对于图中的一个环,是可以从1到这个环,转一圈然后在回到1的,所以可以一开始走很多个环,然后在走一条1到n的路径. 那么可以求出所有的环,加入到线性基 ...

  3. 4269: 再见Xor

    4269: 再见Xor 链接 分析: 和SGU 275唯一不同的就是需要求出次小值,那么异或出最大值的所有元素中,找到最小的,去除即可. 代码: #include<bits/stdc++.h&g ...

  4. AtCoder Grand Contest 035

    Preface Atcoder的题都好劲啊,都是我做不动的计数与构造 就当锻炼自己的思维能力了(基本都是bzt教的) A - XOR Circle bzt说这题数据太水了只要判一下所有数异或值是否为\ ...

  5. AtCoder Grand Contest 035 简要题解

    从这里开始 题目目录 Problem A XOR Circle 你发现,权值的循环节为 $a_0, a_1, a_0\oplus a_1$,然后暴力即可. Code #include <bits ...

  6. AtCoder Beginner Contest 121 题解

    题目链接:https://atcoder.jp/contests/abc121 A White Cells 分析:题目数据规模很小,直接暴力修改都可以.或者可以推出公式. 代码: #include & ...

  7. Codeforces 460D. Little Victor and Set

    D. Little Victor and Set time limit per test:1 second memory limit per test:256 megabytes input:stan ...

  8. Django-C003-视图

    此文章完成度[5%]留着以后忘记的回顾.多写多练多思考,我会努力写出有意思的demo,如果知识点有错误.误导,欢迎大家在评论处写下你的感想或者纠错. 在这个章节中,我们也一样需要练习过往已经掌握的技能 ...

  9. 【AtCoder】AtCoder Grand Contest 035 解题报告

    点此进入比赛 \(A\):XOR Circle(点此看题面) 大致题意: 给你\(n\)个数,问是否能将它们摆成一个环,使得环上每个位置都是其相邻两个位置上值的异或值. 先不考虑\(0\),我们假设环 ...

随机推荐

  1. graphviz 决策树绘图中文乱码解决方法

    1.修改graphviz配置文件 <dir>C:\WINDOWS\Fonts</dir> 更改为 <dir>~/.fonts</dir> 2.将决策树d ...

  2. mahout从入门到放弃--安装(1)

    1.稀里糊涂下载 我的集群是hadoop 2.7.3 ,本来想找到对应的mahout版本,但是没有找到.本着安全原则,mahout最新版本是0.14.0,回退一个版本使用0.13.0 mahout地址 ...

  3. qt5-信号和槽

    信号函数: connect(btn,&QPushButton::clicked,this,&QWidget::close); //参数1 信号发送者://参数2 信号:---& ...

  4. sizeof运算符、字节对齐考点(面宝P50)

    记住几句话: 结构体的长度一定是最长的数据元素类型的整数倍: 某数据元素的起始地址能被该类型所占的字节数整除: 静态变量是存放在全局数据区,而sizeof计算栈中分配的大小,不包括static变量: ...

  5. vue 中监听窗口发生变化,触发监听事件, window.onresize && window.addEventListener('resize',fn) ,window.onresize无效的处理方式

    // 开始这样写,不执行 window.onresize = function() { console.log('窗口发生变化') } // 改成window监听事件 window.addEventL ...

  6. CF 354 D 迷宫与门的旋转 BFS +状态压缩 一定要回头看看

    D. Theseus and labyrinth time limit per test 3 seconds memory limit per test 256 megabytes input sta ...

  7. codevs2370 小机房的树 x

    2370 小机房的树  时间限制: 1 s  空间限制: 256000 KB  题目等级 : 钻石 Diamond   题目描述 Description 小机房有棵焕狗种的树,树上有N个节点,节点标号 ...

  8. 【UOJ#129】 【NOI2015】寿司晚宴

    题目描述 为了庆祝 NOI 的成功开幕,主办方为大家准备了一场寿司晚宴.小 G 和小 W 作为参加 NOI 的选手,也被邀请参加了寿司晚宴. 在晚宴上,主办方为大家提供了 n−1 种不同的寿司,编号 ...

  9. Python字典里的5个黑魔法

    Python里面有3大数据结构:列表,字典和集合.字典是常用的数据结构,里面有一些重要的技巧用法,我把这些都整理到一起,熟练掌握这些技巧之后,对自己的功力大有帮助. 1.字典的排序: 用万金油sort ...

  10. JS框架_(Esign.js)仿信用卡电子签名特效

    百度云盘 传送门 密码:l60w 电子签名特效效果: <!DOCTYPE html> <html> <head lang="en"> <m ...