https://codeforces.com/contest/1438/problem/D

奇数一定可以构造出来

1 2 3 ,3 4 5 ,5 6 7这样,最后就是a[1]=a[2],a[3]=a[4],....a[n-4]=a[n-3],a[n-2]=a[n-1]=a[n],这样的形式,然后再选择1 2 n,3 4 n,那么相等的就会抵消掉,a[1]-a[n]都等于a[n]

偶数情况也是除了最后一位像奇数一样构造

然后看a[1]....a[n-1]是否也等于a[n], 如果也相等,也就是说原来的所有数异或和等于0,那么说明可以构造出来,否则不行

充分性是显然的,必要性猜的。。。但是过了

upd:

必要性证明:考虑每次操作都是不改变整体所有数字的异或和的,那么无论怎么异或异或和都是不改变的,又由于最后要所有数字相等,那么对于偶数情况下的合法解的时候,一定是所有数字异或和等于0

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;const int maxl=3e5+10;int n,m,cnt,tot,cas,ans;
int a[maxl];
bool vis[maxl];
char s[maxl];inline void prework()
{scanf("%d",&n);for(int i=1;i<=n;i++)scanf("%d",&a[i]);
}inline void mainwork()
{if(n&1){puts("YES");ans=0;for(int i=1;i+2<=n;i+=2)ans++;for(int i=1;i+1<n-2;i+=2)ans++;printf("%d\n",ans);for(int i=1;i+2<=n;i+=2)printf("%d %d %d\n",i,i+1,i+2);for(int i=1;i+1<=n-2;i+=2)printf("%d %d %d\n",i,i+1,n);}else{int x=0;for(int i=1;i<=n;i++)x^=a[i];if(x){puts("NO");return;}puts("YES");for(int i=1;i+2<=n-1;i+=2)ans++;for(int i=1;i+1<n-3;i+=2)ans++;printf("%d\n",ans);for(int i=1;i+2<=n-1;i+=2)printf("%d %d %d\n",i,i+1,i+2);for(int i=1;i+1<=n-3;i+=2)printf("%d %d %d\n",i,i+1,n-1);}
}inline void print()
{}int main()
{int t=1;//scanf("%d",&t);for(cas=1;cas<=t;cas++){prework();mainwork();print();}return 0;
}

codeforces1438D Powerful Ksenia相关推荐

  1. Codeforces Round #682 (Div. 2)D Powerful Ksenia ///思维

    cf地址 题目大意:Ksenia has an array a consisting of n positive integers a1,a2,-,an. In one operation she c ...

  2. CF 1438 D. Powerful Ksenia

    Ksenia has an array a consisting of n positive integers a1,a2,-,an. In one operation she can do the ...

  3. 牛客网-数据结构笔试题目(四)-Powerful Ksenia问题解决方案(附源码)

    题意 现在我们想要在n步这样的神奇异或操作之内让数组当中的所有元素全部相等,请问这一点是否可能呢?首先输出YES或NO,表示是否有解.如果有解输出需要操作的步数,以及对应选择的元素下标. 样例 在第一 ...

  4. CF1438D Powerful Ksenia

    Description 给你一个数组aaa,大小为nnn,每一次可以选择一个三元组(i,j,k)(i≠j≠k)(i,j,k)(i\neq j\neq k)(i,j,k)(i​=j​=k),然后将a ...

  5. codeforces round div2,3周赛补题计划(从开学到期末)

    1. 本学期场次 从2020.09.19-2021.01.18,一共18周. 题号 场次 日期 备注 1475 Codeforces Round #697 (Div. 3) 1.25 1474 Cod ...

  6. Codeforces Round #682 (Div. 2)

    文章目录 Codeforces Round #682 (Div. 2) A. Specific Tastes of Andre B. Valerii Against Everyone C. Engin ...

  7. CF 绿蓝题做题记录

    CF 绿蓝题做题记录 题单 最近有在经常随机一些 CF 绿蓝难度的题目,用于提升思维.这里专门开个坑,记录一下思路障碍经验什么的. 自然这些内容也在每天本来的做题记录中就有记录,只不过这里只是把它集合 ...

  8. CodeForces 86 D Powerful array 莫队

    Powerful array 题意:求区间[l, r] 内的数的出现次数的平方 * 该数字. 题解:莫队离线操作, 然后加减位置的时候直接修改答案就好了. 这个题目中发现了一个很神奇的事情,本来数组开 ...

  9. The powerful Android Studio

    英文来源: The powerful Android Studio 作者: Saúl Molinero(@saulmm),感谢作者对本篇文章的翻译授权. 译者: D_clock爱吃葱花 校对: 汤涛( ...

最新文章

  1. html中隐藏溢出怎么写,html-如何隐藏表行溢出?
  2. Linux环境中Visual Studio Code 安装配置及其卸载(详细教程)
  3. 比CycleGAN更强的非监督GAN----DistanceGAN
  4. RH033 Unit 9 vim: An Advanced Text Editor
  5. python【力扣LeetCode算法题库】13- 罗马数字转整数
  6. Yoshua Bengio等图神经网络的新基准Benchmarking Graph Neural Networks(代码已开源)
  7. 分离数据库(Detach database).
  8. javascript中索引_如何在JavaScript中找到数字在数组中所属的索引
  9. 跳蚤 BZOJ 4310
  10. c语言中阶乘相加怎么表示_c语言求阶乘累加和
  11. C语言实现康托尔集cantor set(附完整源码)
  12. BigDecimal的round模式
  13. electron-vue 添加右下角通知图标
  14. 石狮子吃了四十四个涩柿子
  15. 在有滚动条的容器中指定(显示)滚动到某一子元素位置
  16. 编译原理实验(三)词法语法分析综合设计
  17. 某某客户的一次勒索病毒应急响应
  18. pyqt5+pygame实现音乐播放器,可以自动提取文件图片,最终版本
  19. 国产银河麒麟系统源码安装Openvas
  20. 高新技术企业认定,知识产权核查篇

热门文章

  1. 高校开学,小心钓鱼邮件趁火打劫
  2. 如何区别同质化,实现差异化?
  3. Matplotlib基础02:散点图、折线图与柱状图
  4. 餐厅订座系统如何选?餐厅订座系统推荐
  5. 支付宝当面付接入之DEMO简单解读
  6. 夜神模拟器与Android studio连接
  7. vba mysql·教程_Excel VBA ADO SQL入门教程004:SQL中的Excel表
  8. 关键点检测之直接回归(逐行手撕Pytorch)
  9. 鼠标计算机无法识别,计算机无法识别usb鼠标
  10. U盘的两个文件夹不见了,但它还是占着我的空间,为什么?