1 条题解

  • 0
    @ 2022-12-3 21:51:09

    简单 dpdp

    #include<bits/stdc++.h>
    using namespace std;
    (不提供快读)
    void write(int x) {
    	if(x<0){
    		putchar('-');
    		write(-x);
    		return;
    	}
    	if(x>=10)write(x/10);
    	putchar(x%10+'0');
    }
    int n,i,a[1000005],dp[1000005];
    int main()
    {
       n=read();
       for(i=1;i<=n;i++)
       {
          a[i]=read(),dp[i]=1e9;
       }
       dp[1]=a[1];
       dp[2]=a[2];
       dp[3]=a[3];//前三位
       for(i=4;i<=n+1;i++)
       {
          dp[i]=min(dp[i-1],min(dp[i-2],dp[i-3]))+a[i];//从前面找较小值
       }
       write(dp[n+1]);
    	return 0;
    }
    • 1

    信息

    ID
    237
    时间
    1000ms
    内存
    256MiB
    难度
    2
    标签
    (无)
    递交数
    105
    已通过
    63
    上传者