• POJ 3666 Making the Grade (DP滚动数组)


    题意:农夫约翰想修一条尽量平缓的路,路的每一段海拔是A[i],修理后是B[i],花费|A[i] – B[i]|,求最小花费。(数据有问题,代码只是单调递增的情况)

     1 #include <stdio.h>
     2 #include <algorithm>
     3 #include <cstring>
     4 #include <cstdlib>
     5 #include <cmath>
     6 #include <memory>
     7 #include <iostream>
     8 #define LL long long
     9 using namespace std;
    10 int a[2010];
    11 int b[2010];
    12 int dp[2][2010];//滚动数组优化
    13 int main() {
    14     int n;
    15     while(~scanf("%d",&n)) {
    16         for(int i=0; i<n; i++) {
    17             scanf("%d",&a[i]);
    18             b[i]=a[i];
    19         }
    20         sort(b,b+n);
    21         for(int i=0; i<n; i++) {
    22             dp[0][i]=abs(a[0]-b[i]);
    23         }
    24         for(int i=0; i<n; i++) {
    25             int cur=i&0x1;//奇偶区别
    26             int pre=(i-1)&0x1;
    27             int ans=dp[pre][0];
    28             for(int j=0; j<n; j++) {
    29                 ans=min(dp[pre][j],ans);
    30                 dp[cur][j]=ans+abs(a[i]-b[j]);//状态转移方程i表示在前i个数的情况下,最后一个是第j小的最小花费
    31             }
    32         }
    33         int N=(n-1)&0x1;
    34         // printf("%d
    ",dp[N][n-1]);
    35         cout<<*min_element(dp[N],dp[N]+n)<<endl;
    36     }
    37     return 0;
    38 }
    View Code
  • 相关阅读:
    tp框架实现ajax
    tp框架的增删改查
    tp框架获取常量信息、方法、命名空间
    tp框架,访问方式、空方法
    tp基础,文件存储路径
    缓存
    CMS系统存储路径
    Smarty模版引擎的原理
    php的empty(),trim(),strlen()方法
    PHP 流程管理
  • 原文地址:https://www.cnblogs.com/ITUPC/p/5308864.html
Copyright © 2020-2023  润新知