比赛的T1,也不知道自己怎么想的直接上了暴力。其实朴素算法很简单,直接模拟递推即可。
题目描述
题目:
奶牛贝里斯和他的朋友最近正在玩一种特殊的扑克牌游戏。这种扑克牌不同大小的牌有N种,从1到N编号(一般的牌只有13种大小,除了大王和小王)。在这个游戏中,只有一种出牌方式,每次出牌,选择任意一个出牌区间,例如[i…j],那么就从i到j每种大小的牌各出一张。
问题描述:
给定贝里斯手中的每种大小的牌的数量。请帮助贝里斯计算最少要出多少次牌才能将他手中的牌出完。
输入
第一行一个正整数N,表示扑克牌的种类。
接下来第2行到第N+1行,第i+1行的非负整数ai表示大小为i的牌有ai张。
输出
输出将所有的牌出完最少需要的次数。
样例输入
5
2
4
1
2
3
样例输出
6
数据范围限制
数据范围:1<=N<=100000,0<=ai<=100000。
提示
说明:样例中,我们从1到5出一次,1到2出一次,4到5出一次,2到2出两次,5到5出一次,所以总共需要的次数是:1+1+1+2+1=6。
暴力思路还是很好想的,直接上开始分割。每次找到区间的最小值,再把区间所有的值减去最小值,再依照最小值的左和右继续分割。
得出这种算法的依据是贪心,我们可