codeforces1438D Powerful Ksenia
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相关推荐
- 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 ...
- 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 ...
- 牛客网-数据结构笔试题目(四)-Powerful Ksenia问题解决方案(附源码)
题意 现在我们想要在n步这样的神奇异或操作之内让数组当中的所有元素全部相等,请问这一点是否可能呢?首先输出YES或NO,表示是否有解.如果有解输出需要操作的步数,以及对应选择的元素下标. 样例 在第一 ...
- 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 ...
- codeforces round div2,3周赛补题计划(从开学到期末)
1. 本学期场次 从2020.09.19-2021.01.18,一共18周. 题号 场次 日期 备注 1475 Codeforces Round #697 (Div. 3) 1.25 1474 Cod ...
- Codeforces Round #682 (Div. 2)
文章目录 Codeforces Round #682 (Div. 2) A. Specific Tastes of Andre B. Valerii Against Everyone C. Engin ...
- CF 绿蓝题做题记录
CF 绿蓝题做题记录 题单 最近有在经常随机一些 CF 绿蓝难度的题目,用于提升思维.这里专门开个坑,记录一下思路障碍经验什么的. 自然这些内容也在每天本来的做题记录中就有记录,只不过这里只是把它集合 ...
- CodeForces 86 D Powerful array 莫队
Powerful array 题意:求区间[l, r] 内的数的出现次数的平方 * 该数字. 题解:莫队离线操作, 然后加减位置的时候直接修改答案就好了. 这个题目中发现了一个很神奇的事情,本来数组开 ...
- The powerful Android Studio
英文来源: The powerful Android Studio 作者: Saúl Molinero(@saulmm),感谢作者对本篇文章的翻译授权. 译者: D_clock爱吃葱花 校对: 汤涛( ...
最新文章
- html中隐藏溢出怎么写,html-如何隐藏表行溢出?
- Linux环境中Visual Studio Code 安装配置及其卸载(详细教程)
- 比CycleGAN更强的非监督GAN----DistanceGAN
- RH033 Unit 9 vim: An Advanced Text Editor
- python【力扣LeetCode算法题库】13- 罗马数字转整数
- Yoshua Bengio等图神经网络的新基准Benchmarking Graph Neural Networks(代码已开源)
- 分离数据库(Detach database).
- javascript中索引_如何在JavaScript中找到数字在数组中所属的索引
- 跳蚤 BZOJ 4310
- c语言中阶乘相加怎么表示_c语言求阶乘累加和
- C语言实现康托尔集cantor set(附完整源码)
- BigDecimal的round模式
- electron-vue 添加右下角通知图标
- 石狮子吃了四十四个涩柿子
- 在有滚动条的容器中指定(显示)滚动到某一子元素位置
- 编译原理实验(三)词法语法分析综合设计
- 某某客户的一次勒索病毒应急响应
- pyqt5+pygame实现音乐播放器,可以自动提取文件图片,最终版本
- 国产银河麒麟系统源码安装Openvas
- 高新技术企业认定,知识产权核查篇