10月20日 过桥

题目

分析

     DP

        f[i]=min(f[i-1]+a[i]+a[1],f[i-2]+a[i]+a[2]*2+a[1]);

代码

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<algorithm>
 4 using namespace std;
 5 
 6 int a[1010],f[1010],n;
 7 
 8 int main(){
 9     cin>>n;
10     for (int i=1;i<=n;i++)
11         cin>>a[i];
12     sort(a+1,a+n+1);
13     f[1]=a[1];
14     f[2]=a[2];
15     for (int i=3;i<=n;i++)
16         f[i]=min(f[i-1]+a[i]+a[1],f[i-2]+a[i]+a[2]*2+a[1]);
17     cout<<f[n]<<endl;
18     return 0;
19 }
为何要逼自己长大,去闯不该闯的荒唐
原文地址:https://www.cnblogs.com/zjzjzj/p/9860863.html