zoukankan      html  css  js  c++  java
  • Codeforces 714B. Filya and Homework

    题目链接:http://codeforces.com/problemset/problem/714/B

    题意:

      给你一个含有 n 个数的数组, 问你是否存在一个 x, 使得这个数组中的某些数加上 x, 某些数减去 x 后所有数都相等.

    思路:

      如果这个数组里面不相等的数大于 3 个那么 x 就不可能存在. 否则如果这个数组里仅有三个数不一样且设为 a, b, c(a < b < c), 则还必须满足 b - a == c - b. 使得所有等于 a 的数加上 b - a 变为 b, 所有等于 c 的数减去 c - b 也变为 b, 则可以让所有数相等.  如果这个数组里面仅有两个数不一样且设为 a, b, 那么给所有为 a 的数加 (b - a) 或者给所有值为 b 的数减去(b - a) 那么这个数组里所有数也会相等. 如果这个数组里的数全部相等, 则不用变化就好, 上述三种情况满足其一就可以满足题意.

    代码:

     1 #include <bits/stdc++.h>
     2 
     3 using namespace std;
     4 typedef long long LL;
     5 const int MAXN = 100000;
     6 int arv[MAXN + 3];
     7 
     8 int main() {
     9     ios_base::sync_with_stdio(0); cin.tie(0);
    10     int n; cin >> n;
    11     for(int i = 0; i < n; i++) cin >> arv[i];
    12     sort(arv, arv + n);
    13     int jud[MAXN + 3], len = 0;
    14     jud[len++] = arv[0];
    15     for(int i = 1; i < n; i++) if(arv[i] != arv[i - 1]) jud[len++] = arv[i];
    16     if(len == 1 || len == 2  || (len == 3 && jud[2] + jud[0] == jud[1] * 2) ) cout << "YES" << endl;
    17     else cout << "NO" << endl;
    18     return 0;
    19 }
  • 相关阅读:
    css定位
    css遗漏
    php字符操作
    php类于对象
    php数组的操作
    php基础
    javascript显式类型的转换
    【模板】并查集
    图论三种做法:朴素版Dijkstra、堆优化(优先队列)Dijkstra、spfa(队列优化版Bellman-Ford)
    二分之一网打尽
  • 原文地址:https://www.cnblogs.com/Ash-ly/p/5874337.html
Copyright © 2011-2022 走看看