XMU 1465.连续数列
来源:互联网 发布:关于淘宝美工工作流程 编辑:程序博客网 时间:2024/05/16 05:29
1465.连续数列
Time Limit: 1000 MS Memory Limit:65536 K
Total Submissions: 397 (77 users)Accepted: 48 (29 users)
Total Submissions: 397 (77 users)Accepted: 48 (29 users)
Description
所谓连续整数列,指的是将含有n个整数的数列A中的所有整数重新从小到大排序以后得到的新的数列B, 满足, 对于任意正整数i, j(1 <= i,j <= n), 恒有Bj - Bi = j - i 。现在, 假定给你一个整数列C,你需要求出将其变为连续数列所需花费的最小代价和。(将整数x变为整数y需要花费|x - y|的代价, 所谓代价和,指的是改变所有数字所需花费的代价的总和)。
Input
输入的第一行有一个正整数n(1 <= n <= 100,000),接下来的一行有n个整数Ci (1 <= i <= n, -1,000,000,000 <= Ci <=1,000,000,000)。
Output
输出一个整数, 代表所需花费的最小代价和。
Sample Input
4
4 1 5 2
4 1 5 2
Sample Output
2
Hint
只需将数字5变为数字3即可, 所需花费的代价为|5 - 3| = 2
thingking:这道题目可以转化成高中的一道几何题。假设 a, b, c, ....N, 为数列A排序后形成的B,x1, x2,x3, x4, ....xn为数列B经最小代价转化为的连续数列。 那么最小代价和 sum= |a-x1|+|b-x2|+|c-x3|+.....+|n-xn|; 又因为x1, x2,x3,...xn为连续等差数列,所以等价于x+1, x+2,x+3,....x+n;则sum=|a-x-1|+|b-x-2|+|c-x-3|+....+|N-n-x|;可以把这个式子理解为:在x坐标系上有a-1,b-2,c-3...N-n,个点,求他们到x(未知点)的最小距离。则先求x的位置,根据以上几何问题,可以退出,x为这些点的中位数时,sum最小。
#include
#include
#include
#include
#include
#include
#include
using namespace std;
typedef long long int64;
int64 a[100010]={0}, x, sum = 0;
int main()
{
int n, i;
{
}
0 0
- XMU 1465.连续数列
- XMU 1605 nc与数列 【动态规划】
- 1093 连续数列求和
- 最大连续数列和
- 最大连续子数列
- HDOJ 2019 数列有序!
- 存储器 连续分配
- 最大连续子数列和
- 最大连续数列的和
- 最大连续数列的和
- 最大连续数列的和
- 最大连续数列的和
- 最大连续数列的和
- 最大连续数列的和
- 最大连续数列的和
- 最大连续子数列和
- XMU 1350.幸运数组 连续子数组被k整除的个数 STL
- next-permutation 用于数列,字…
- 虾青素
- UVA 1335 Beijing Guards 二分贪心
- gentoo挂载ntfs分区,解决中文乱码问题
- 工作队列的使用
- poj 1001 解题报告
- XMU 1465.连续数列
- poj百炼 2750:鸡兔同笼
- poj百炼 2801:填词
- poj百炼 1017:装箱问题
- poj百炼 2715:谁拿了最多奖学金
- poj百炼 2975:Caesar 密码
- poj百炼 2744:子串
- poj1661:Help Jimmy
- poj 百炼 2965:玛雅历