博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Nowcoder deco的abs
阅读量:5214 次
发布时间:2019-06-14

本文共 1248 字,大约阅读时间需要 4 分钟。

题目描述

deco最近迷上了abs,有一天他在梦里回忆起了自己以前见过的一道abs题目:

给定一个长度为n的数列,第i个数字是aia_iai​,对于每个数字,你可以选择给他加上一个数d任意次,使得∑i=2n∣ai−ai−1∣\sum\limits_{i=2}^n |a_i-a_{i-1}|i=2∑n​∣ai​−ai−1​∣的值最小

可是当时deco非常的naive以至于他没做出来,现在他躺在床上玩手机不想起来拿电脑了,你可以帮他做出来吗?

输入描述:

第一行,两个数,n,d

第二行,n个数,第i个数代表aia_iai​

输出描述:

一行,一个数,表示∑i=2n∣ai−ai−1∣\sum\limits_{i=2}^n |a_i-a_{i-1}|i=2∑n​∣ai​−ai−1​∣最小值

示例1

输入

4 3

1 7 8 1

输出

2

备注:

对于30%30%30%的数据,n≤105n \leq 10^5n≤105

对于50%50%50%的数据,n×d≤108n\times d\leq 10^8n×d≤108
对于100%100%100%的数据,2≤n≤1072 \leq n \leq 10^72≤n≤107,1≤d≤100001\leq d \leq 100001≤d≤10000,1≤ai≤1061\leq a_i \leq 10^61≤ai​≤106

#include
#define int long longusing namespace std;typedef long long ll;inline void input(ll &x){ ll ans=0,f=1; char c=getchar(); while(c>'9'||c<'0'){ if(c=='-')f=-1; c=getchar(); } while(c>='0'&&c<='9'){ ans=ans*10+c-48; c=getchar(); } x=ans*f;}inline void output(ll x){ if(x<0)x=-x,putchar('-'); if(x>9)output(x/10); putchar(x%10+48);}inline void writeln(int x){ output(x); putchar('\n');}inline int abs(int x){ return x>0?x:-x;}inline int min(int a,int b){ return a

注意min中包含两种情况

至今未弄明白我的代码为什么不加读入优化离奇超时

以及为什么我的代码不开longlong离奇WA

可能我RP不好吧(

转载于:https://www.cnblogs.com/Y15BeTa/p/11404519.html

你可能感兴趣的文章
Java自定义范型的应用技巧
查看>>
[洛谷1485] 火枪打怪
查看>>
白话经典算法系列之六 快速排序 快速搞定
查看>>
https://zhidao.baidu.com/question/362784520674844572.html
查看>>
【MFC 学习笔记】CFile读写文件
查看>>
PAT B1018.锤子剪刀布(20)
查看>>
Extjs控件之 grid打印功能
查看>>
枚举类型(不常用)递归
查看>>
ETL
查看>>
Tomcat源码分析(六)--日志记录器和国际化
查看>>
今天把csdn的博客搬家到博客园
查看>>
D3.js+Es6+webpack构建人物关系图(力导向图),动态更新数据,点击增加节点,拖拽增加连线......
查看>>
基于网络的 Red Hat 无人值守安装
查看>>
Mybatis第六篇【配置文件和映射文件再解读、占位符、主键生成与获取、Mapper代理】...
查看>>
MySQL学习笔记(二):MySQL数据类型汇总及选择参考
查看>>
jQ 移动端返回顶部代码整理
查看>>
博客园界面美化
查看>>
sql查询远程数据库的表的数据并填充到本地数据库的表
查看>>
YII缓存依赖的应用
查看>>
决策树在机器学习的理论学习与实践
查看>>