问题4529--看护鱼塘(N<=20)

4529: 看护鱼塘(N<=20)

时间限制: 1 Sec  内存限制: 512 MB
提交: 0  解决: 0
[提交] [状态] [讨论版] [命题人:]

题目描述

这天晚上,约翰做了个奇怪的美梦。他拥有了分别分布在N座高高低低的山上的N个池塘,N座山连成一条直线,从左往右第i座山的高度是Hi。池塘中的鱼都是他请专家运用科学的方法专门养殖的,为了保护每个池塘的生态环境,他现在要在这N座山上建造若干个看护点。约翰是个很节约的人,在第i座山建造看护点的花费为Ci。假设在第i座山建造一个看护点,则往左或者往右第一座不比这座山低的山将挡住看护的视线(相等时能看到第一个)。譬如说: {Hi} = {1 4 4 5 7 2}表示第一座山高度为1,第二座山高度为4。。。 如果在第1座山建造一个看护点,则可以看护第1,2两个池塘。如果在第5座山上建造一个看护点,则左右的池塘都能被看护到。如果在第3座山上建造一个看护点,则能够看护到第2,3,4个池塘。 又比如:{Hi} = {1 4 4 2 4 2}第5座山往左能看到第4、第3座山,往右能看到第6座山。 要求能够看护到所有的池塘,建造看护点的最小代价是多少。即建造看护点的山对应的花费Ci之和最小。

输入

第一行包含一个正整数N,N满足1<=N<=20。 第二行包含N个正整数,第i个正整数Hi满足1<=Hi<=100,表示第i座山的高度 第三行包含N个正整数,第i个正整数Ci满足1<=Ci<=100,表示在第i座山建造看护点的代价为Ci

输出

一行包含一个正整数C,表示最小的代价。

样例输入

例1
3
1 1 1
2 2 2

样例2:
5
2 1 4 5 3
2 4 1 6 3

样例输出

(1)
2

样例说明:选取中间的一个点,可以看到两边的,代价是2

(2)
4

来源/分类

 

[提交] [状态]