六安市网站建设_网站建设公司_导航菜单_seo优化
2025/12/17 20:31:57 网站建设 项目流程

https://ac.nowcoder.com/acm/contest/125083/C

题目分析

这道题不算是难题,其实动下脑子想一下就能出来了

他要算总个的花费最小,无疑有两种情况

其实给我们的案例上已经体现出来了,第一种就是直接全部相加,第二种就是找到整个 区间的最大值,花费最大值的钱,在把所有的数值全变为最小的然后再相加

我们要想一下就是,最大值的话,你不管怎么样,最后都是要加一下的,那如果想要花的最少,有一种情况肯定是把最大值找出来,然后用最小值去替代所有的值,也就是我们说的第二种情况

还有特殊一点的就是第一种情况的,就直接全部加起来就行,举个例子1 1 3 1,也就是案例上的,这种的话最小值是相同的,所以我们不需要花最大值去替换所有的,我们可以自己试一下,花完后,变成1 1 1 1,最后总花费是3+4,大于直接相加也就是3+3,相信大家也都能明白

所以这道题说到这里大家应该是可以自己写出来了

代码实现

注意几点

1.这个使用min的时候,我们要有这个#include<algorithm>这个头文件,还有,这个比较的时候,类型一定是要相同的,你看我上面的,sum是ll,a[N]是int类型的 ,所以我们要转换一下

2.这个sum=0要放在循环里面,这样每次就初始化为0了,我刚开始放在了外面,那这样第二个案例运行时,这个sum是等于第一次的值的,就不是0了

所以还是需要多练习,多想,好多东西其实是不难的,就一定要多动手去做,不要怕

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询