1 条题解

  • 1
    @ 2024-11-18 14:00:34

    小破dp

    #include<bits/stdc++.h>
    using namespace std;
    const int N=100005;
    int n,nn,k,kk;
    int f[N][4];
    int a[N],b[N],c[N];
    int main(){
    	scanf("%d",&n);
    	for(int i=1;i<=n;i++){
    		scanf("%d",&a[i]);
    	}
    	for(int i=1;i<=n;i++){
    		scanf("%d",&b[i]);
    	}
    	for(int i=1;i<=n;i++){
    		scanf("%d",&c[i]);
    	}
    	f[1][1]=a[1];
    	f[1][2]=b[1];
    	f[1][3]=c[1];
    	for(int i=2;i<=n;i++){
    		f[i][1]=min(f[i-1][2],f[i-1][3])+a[i];
    		f[i][2]=min(f[i-1][1],f[i-1][3])+b[i];
    		f[i][3]=min(f[i-1][2],f[i-1][1])+c[i];
    	}
    	cout<<min(f[n][1],min(f[n][2],f[n][3]));
    	return 0;
    }
    
    • 1

    信息

    ID
    52
    时间
    1000ms
    内存
    256MiB
    难度
    4
    标签
    (无)
    递交数
    27
    已通过
    17
    上传者