zoukankan      html  css  js  c++  java
  • 洛谷 p3399

    一道非常弱智的DP

    就是个01背包的sb版

    但是需要个初始化,二维数组记录i=城市数,j=天数,记得二维数组时第二个循环为正常顺序,不能倒序。还有就是初始化,真的没想到该把f初始为什么,因为要求min,memset成0,ans就全是0,初始为极大则会直接影响结果。

    所以,就把(i,i)全整出来,因为这是我们完全已知的条件,二层循环从i+1开始是因为不可能在小于i天内走完i个城市,所以(i,i)也是最基层条件。

    #include <iostream>
    #include <cstdio>
    #include <cstring>
    using namespace std;
    
    int n,m,f[1002][1002],d[1002],c[1002];
    
    int main(){
        scanf("%d%d",&n,&m);
        for(int i=1;i<=n;i++)
            scanf("%d",&d[i]);
        for(int i=1;i<=m;i++)
            scanf("%d",&c[i]);
        //for(int i=1;i<+n;i++)//一个绝对烧饼的错误,(仔细看~
            
        for(int i=1;i<=n;i++){
            f[i][i]=f[i-1][i-1]+d[i]*c[i];
            for(int j=i+1;j<=m;j++){
                f[i][j]=min(f[i][j-1],f[i-1][j-1]+d[i]*c[j]);
            }
        }
        printf("%d",f[n][m]);
        
        return 0;
    }
  • 相关阅读:
    Milking Time---poj3616(简单dp)
    elasticsearch-入门(一)
    Spring Cloud Sleuth(十四)
    Spring Cloud Stream(十三)
    Spring Cloud-Bus(十二)
    Spring Cloud-config(十一)
    mac Gitblit安装
    git学习笔记
    java陷阱之spring事物管理导致锁无效
    Spring Cloud-Zuul(十)
  • 原文地址:https://www.cnblogs.com/jindui/p/11025217.html
Copyright © 2011-2022 走看看