P5914 [POI2004]MOS

· · 题解

本弱鸡的第6篇题解 (也不知道之前的算不算)

还是那句话,如有雷同,纯属巧合。

这道题是我无意间点进去的。发现这道题还行,就试着编了编。总之,一句话:

十年oi一场空,不开longlong见祖宗!

就因为longlong的事我想了半天。

废话说够了,上代码。

#include<bits/stdc++.h>//万能头文件
using namespace std;
long long a[1000005],b[1000005];//坑人!要开longlong,还要把数组开大!
int main(){
    long long n;//十年oi一场空,不开longlong见祖宗!
    cin>>n;//输入
    long long sum=0;//计数器
    for(long long i=1;i<=n;i++)//循环也要longlong
        cin>>a[i];//输入
    if(n<=2){//如果n<2
        cout<<a[n];//直接输出
        return 0;
    }
    b[n]=a[n]+a[1];
    for(int i=n-1;i>=1;i--)//倒着循环
        b[i]=min(a[i]+a[1]+b[i+1],a[i+1]+2*a[2]+a[1]+b[i+2]);//比较最小值
    cout<<b[3]+a[2];//输出
    return 0;//养成好习惯
}

我码风不错吧? 详细内容看代码,溜啦溜啦~~~