p4552-差分

2023大厂真题提交网址(含题解):

www.CodeFun2000.com(http://101.43.147.120/)

最近我们一直在将收集到的机试真题制作数据并搬运到自己的OJ上,供大家免费练习,体会真题难度。现在OJ已录入50+道2023年最新大厂真题,同时在不断的更新。同时,可以关注"塔子哥学算法"公众号获得每道题的题解。
在这里插入图片描述
在这里插入图片描述
第一问容易看出是 m a x ( p , n ) max(p,n) max(p,n)

第二问,考虑 b [ 1 ] b[1] b[1]可以被我们构成多少可能的结果。

让每个数变成一样的本质就是让差分数组的后 n − 1 n-1 n1项全变成0.
该过程的每一步 就是 让一个正数–,负数++.

因为要保证步数最小,那么这里面至少有 m i n ( p , n ) min(p,n) min(p,n)步是从 [ 2 , n ] [2,n] [2,n]中同时拿掉一对+1-1

剩下 a b s ( p − n ) abs(p-n) abs(pn)步,有两种决策,要么和 b [ 1 ] b[1] b[1]操作,要么和 b [ n + 1 ] b[n+1] b[n+1]操作.
又因为操作没有区别,我们只看最后结果。 b [ 1 ] b[1] b[1]的取值范围就是 [ b [ 1 ] , b [ 1 ] + a b s ( p − n ) ] [b[1],b[1]+abs(p-n)] [b[1],b[1]+abs(pn)].

进阶:

求有多少种不同的方案使得他们相同.

任意两个方案不同,存在某一步的操作不一样

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值