青少年编程知识记录 codecoming

【题解】前缀最小值

【题目描述】

求一个数列的所有前缀最小值之和。

即:给出长度为n的数列a[i],求出对于所有1<=i<=n,min(a[1],a[2],...,a[i])的和。

由于读入较大,数列由随机种子生成。

其中a[1]=x,a[i]=(379*a[i-1]+131)%997。

【输入描述】

一行两个正整数n,x,分别表示数列的长度和随机种子。(n<=100000,x<997)

【输出描述】

一行一个正整数表示该数列的前缀最小值之和。

【样例输入】

5 666

【样例输出】

1650

【提示】

数列为{666,304,692,188,596},前缀最小值为{666,304,304,188,188},和为1650。



前缀最小:

比如,有数列:666 304 692 188 596,前缀最大值为:666,304,304,188,188,和为1650。

对于每个位置的前缀最小值解释如下:对于第1个数666,只有一个数,一定最大;对于第2个数,求出前两个数的最小数,还是304;对于第3个数,求出前3个数的最小数是304……其余位置依次类推,最后求前缀最小值得和。



标签: 动态规划

作者:亿万年的星光 分类:题解目录 浏览:

【题解】公路乘车(动态规划)

【题目描述】

一个特别的单行街道在每公里处有一个汽车站。顾客根据他们乘坐汽车的公里使来付费。例如下表就是一个费用的单子。   没有一辆车子行驶超过10公里,一个顾客打算行驶n公里(1< =n< =100),它可以通过无限次的换车来完成旅程。最后要求费用最少。

【输入描述】

  第一行十个整数分别表示行走1到10公里的费用(< =500)。注意这些数并无实际的经济意义,即行驶10公里费用可能比行驶一公里少。         第二行一个整数n表示,旅客的总路程数。

【输出描述】

仅一个整数表示最少费用。

【样例输入】

12 21 31 40 49 58 69 79 90 101  15

【样例输出】

147



标签: 动态规划

作者:亿万年的星光 分类:题解目录 浏览:

【算法】最大子段和

【题目描述】

给出一个长度位n的序列a,选出其中连续且非空的一段使得这段和最大

【输入描述】

第一行是一个整数,表示序列的长度n。

第二行有n个整数,第i个整数表示序列的第i个数字ai

【输出描述】

输出一行一个整数表示答案。

【样例输入】

7  2 -4 3 -1 2 -4 3

【样例输出】

4

标签: 动态规划

作者:亿万年的星光 分类:算法 浏览: