Codeforces Round #371 (Div. 2) - B
2024-08-25 14:41:56
题目链接:http://codeforces.com/contest/714/problem/B
题意:给定一个长度为N的初始序列,然后问是否能找到一个值x,然后使得序列的每个元素+x/-x/不变,最后把序列变成各个元素都相等(序列每个元素只能进行操作一次)
思路:因为每个元素只能操作一次,而且操作的值只有一个值x。那么就可以发现当序列中存在3个以上的互不相等的数时一定不能构造要求的序列。 当序列存在3个一下的互补相同的数时,一定能构造要求的序列。现在要考虑的是刚刚有3个互不相同的序列时,把序列去重+排序后,如果数2-数1=数3-数2.则可以构造,否则不能构造。
#define _CRT_SECURE_NO_DEPRECATE
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<string>
#include<queue>
#include<vector>
#include<time.h>
#include<cmath>
#include<set>
using namespace std;
typedef long long int LL;
const int MAX = + ;
int main(){
//#ifdef kirito
// freopen("in.txt", "r", stdin);
// freopen("out.txt", "w", stdout);
//#endif
int n,num;
while (~scanf("%d", &n)){
set<int>se;
for (int i = ; i < n; i++){
scanf("%d", &num); se.insert(num);
}
if (se.size()>){
printf("NO\n");
}
else if (se.size() == ){
vector<int>m;
for (set<int>::iterator it = se.begin(); it != se.end(); it++){
m.push_back(*it);
}
sort(m.begin(), m.end());
if (m[] - m[] == m[] - m[]){
printf("YES\n");
}
else{
printf("NO\n");
}
}
else{
printf("YES\n");
}
}
return ;
}
最新文章
- 关于PCA的几何表示——MATLAB实现
- Apache Commons fileUpload实现文件上传之一
- tty -s &;&; mesg n
- [Kinect]XBox One Kinect连接Windows
- 游戏中网络数据包和HTTP数据的思考
- Python之路-Linux命令基础(5)
- Source Insignt注册码
- iOS APP之间到跳转,以及热门应用,手机自带到应用跳转
- Spring整合quartz框架实现任务定时调度
- gradlew在Travis CI没可执行权限 permission denied
- SSD-Tensorflow: 3 步运行 TensorFlow 单图片多盒目标检测器
- CCS的文本及字体
- 用vue+element-ui开发后台笔记
- Spark On Yarn的两种模式yarn-cluster和yarn-client深度剖析
- oracle 11 g release 2 卸载
- awk 进阶,百万行文件取交集
- 步步为营-53-JavaScript
- 元素class的增、删、查、toggle
- dll注入到指定进程
- 【NOIP2018】保卫王国 动态dp