https://acm.ecnu.edu.cn/contest/92/problem/D/

D. 数蝌蚪

Time limit per test: 2.0 seconds

Memory limit: 256 megabytes

有 n 个装着小蝌蚪的水缸排成一排,你拥有一个无限蝌蚪的袋子,可以往一个水缸里放入一只蝌蚪,也可以取出一只蝌蚪,求最少的操作数,使得每个水缸的蝌蚪数量形成一个公差为 k 等差数列。

Input

第一行一个数 n,k(3⩽n⩽3×105,0⩽k⩽104)。
第二行 n 个数,表示每个水缸里的蝌蚪数目(0⩽ai⩽104)。

Output

输出最少操作次数。

Examples

input
4 2
1 2 3 4
output
4
input
4 2
0 1 2 3
output
6

Note

蝌蚪的个数不能是负的。

题目大意:最多进行多少次加减能使给定数列成为一个等差为k的数列(每次只能加或减一)

题解:代数分析+列式求解
具体地:先假设第一个数不变,然后用数组a[i]记录下后面的数与应得的数的差值,这时对第一个数进行操作 减 x ,那么后面的数则应进行操作abs(a[i]-x),则一共需要进行的操作次数是 abs(a[i]-x)从0到n-1的和,易知当x取数组a[i]的中位数时和最小,所以进行计算即可
[注意由改变后的数必须为非负数,所以需要对x的值进行限制]
 #include<iostream>
#include<cstdio>
#include<cmath>
#include<algorithm>
using namespace std;
long long orz[];
int main()
{
long long n,k;
scanf("%lld%lld",&n,&k);
long long a;
scanf("%lld",&a);
long long A=a;
orz[]=;
int q=,w=;
for(int i = ; i < n ; i++){
long long b;
scanf("%lld",&b);
orz[i]=-(b-k-A);
A=A+k;
}
long long sum=;
sort(orz,orz+n);
long long aa=;
long long asd=max(aa,(-n)*k);
long long ass=a-asd;
// cout << asd << endl;
if(orz[n/]>ass){
for(int i = ; i < n ;i++){
sum+=abs(orz[i]-ass);
} }
else{
for(int i = ; i < n ;i++){
sum+=abs(orz[i]-orz[n/]);
}
} cout << sum <<endl;
return ;
}
 

【EOJ Monthly 2018.7】【D数蝌蚪】的更多相关文章

  1. EOJ Monthly 2018.7

    准备继续大学acm啦 又要开始愉快的码码码啦 第一次在华东师大OJ上面做题 看来EOJ上的积分体质是假的,我怎么一把上红??? A.数三角形 神tm的防AK题放在A,出题人很不友好啊... 先写了个暴 ...

  2. EOJ Monthly 2018.4

    A. ultmaster 的小迷妹们 Time limit per test: 2.0 seconds Memory limit: 256 megabytes ultmaster 男神和他的小迷妹们准 ...

  3. EOJ Monthly 2020.1 E. 数的变幻

    题目链接:https://acm.ecnu.edu.cn/contest/247/problem/E/ 这道题是cf原题: Codeforces Round #608 (Div. 2) E. Comm ...

  4. EOJ Monthly 2018.11 猜价格 (模拟)

    分三种情况: 1.k=1.此时每次都说反话,反着二分即可. 2.1<k <= n.那么在前n次问答中一定会出现一次错误,通过不断输出1找出那个错误发生的位置(若回答是>那这就是错误) ...

  5. EOJ Monthly 2018.8 D. Delivery Service-树上差分(边权/边覆盖)(边权转点权)(模板题)

    D. Delivery Service 单测试点时限: 2.5 秒 内存限制: 512 MB EOJ Delivery Service Company handles a massive amount ...

  6. EOJ Monthly 2018.2

    A. 坑爹的售票机 题意 用\(1,5,10,25,50,100\)的纸币买\(n\)张单价为\(p\)的船票,且一次性最多买\(k\)张,求钱数恰好时最少需要多少张纸币. Hard: \(n,k,p ...

  7. EOJ Monthly 2018.1

    985月赛,当时鸽了,现在想补一补 A. 石头剪刀布的套路 Time limit per test: 1.0 seconds Memory limit: 256 megabytes 现在有一种石头剪刀 ...

  8. EOJ Monthly 2018.4 (E.小迷妹在哪儿(贪心&排序&背包)

    ultmaster 男神和小迷妹们玩起了捉迷藏的游戏. 小迷妹们都希望自己被 ultmaster 男神发现,因此她们都把自己位置告诉了 ultmaster 男神,因此 ultmaster 男神知道了自 ...

  9. [EOJ Monthly 2018.10][C. 痛苦的 01 矩阵]

    题目链接:C. 痛苦的 01 矩阵 题目大意:原题说的很清楚了,不需要简化_(:з」∠)_ 题解:设\(r_i\)为第\(i\)行中0的个数,\(c_j\)为第\(j\)列中0的个数,\(f_{i,j ...

随机推荐

  1. http协商缓存VS强缓存

    之前一直对浏览器缓存只能描述一个大概,深层次的原理不能描述上来:终于在前端的两次面试过程中被问倒下,为了泄恨,查阅一些资料最终对其有了一个更深入的理解,废话不多说,赶紧来看看浏览器缓存的那些事吧,有不 ...

  2. 启动项目时出现java.io.EOFException异常。

    错误: 2018-4-18 10:55:54 org.apache.catalina.session.StandardManager doLoad 严重: IOException while load ...

  3. day17 面向对象-成员

    今日主要学习了: 1 .成员 2. 变量 3. 方法 4.属性 5.私有 1. 成员 在类中你能写的所有内容都是成员 2 .变量 1) 实例变量: 昨天写的就是实例变量 ,由对象去访问的变量 . cl ...

  4. redis、memcache、mongoDB 对比

    从以下几个维度,对 redis.memcache.mongoDB 做了对比. 1.性能 都比较高,性能对我们来说应该都不是瓶颈. 总体来讲,TPS 方面 redis 和 memcache 差不多,要大 ...

  5. 一. Python基础(1)--语法

    一. Python基础(1)--语法 1. 应用程序 1.1 什么是计算机(Computer)? 组成 ①运算器 arithmetic unit; ※ Arithmetic unit and cont ...

  6. Android : VLC for Android 环境搭建及编译

    一.下载VLC源码: git clone https://code.videolan.org/videolan/vlc-android.git 编译apk:   sh compile.sh -a ar ...

  7. JavaWeb基础-Session和Cookie

    JSP状态管理 http的无状态性,服务器不会记得发送请求的浏览器是哪一个 保存用户状态的两大机制:session和cookie Cookie:是web服务器保存在客户端的一系列文本信息 作用:对特定 ...

  8. innerHTML和innerText的区别,以及select元素中怎么取出被选中的option。

    一.innerHTML和innerText的区别. 元素.innerHTML = 字符串,是将一对或一个标签所标识的内容全部替换为所赋予的字符串,如果字符串中有标签,浏览器将自动识别其中的标签. 元素 ...

  9. PMS5003ST传感器

    5003ST传感器已经收到,准备开始DIY PM2.5检测仪       一款可以同时监测空气中颗粒物浓度.甲醛浓度及温湿度的三 合一传感器.其中颗粒物浓度的监测基于激光散射原理,可连续采集并计算单位 ...

  10. Struts2中的ModelDriven接口

    若没有实现ModelDriven的接口,Controll的代码会比较冗余,不能实现Controll和Model代码的分离 下面是没有实现ModelDriven接口的SuggestAction pack ...