t
a
g
:
tag :
tag:差分
传送门:
题意 : 给定多个树木的水分值 − 1 0 9 ≤ a i ≤ 1 0 9 - 10^9 \le a_i \le 10^9 −109≤ai≤109
你可以进行如下三个操作 :
- 将 1... i 1...i 1...i的树木的水分 − 1 -1 −1
- 将 i , i + 1.... n i,i+1....n i,i+1....n的树木的水分 − 1 -1 −1
- 将所有树木的水分 + 1 +1 +1
询问 最小的操作次数 使得最后所有树木的水分 = 0 =0 =0
思路:
第一种操作对应差分的 : d [ 1 ] − 1 , d [ i + 1 ] + 1 d[1]-1,d[i+1]+1 d[1]−1,d[i+1]+1
第二种操作对应 : d [ i ] − 1 , d [ n + 1 ] + 1 d[i]-1,d[n+1]+1 d[i]−1,d[n+1]+1
第三种操作对应 d [ 1 ] + 1 , d [ n + 1 ] − 1 d[1]+1,d[n+1]-1 d[1]+1,d[n+1]−1
code :
ll n,a[N],d[N];
void solve(){
cin>>n;
for(int i=1;i>a[i];
d[i] = a[i] - a[i-1];
}
ll res = 0 ;
for(int i=n;i>=2; i -- ){
if(d[i] >= 0 ) res += d[i];
else{
res -= d[i];
d[1] += d[i];
}
}
cout
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?