zoukankan      html  css  js  c++  java
  • hdu 1300 Pearls

    链接:http://acm.hdu.edu.cn/showproblem.php?pid=1300

    思路:用dp[i]表示前i种花费最低的情况,则有dp[i]=min(dp[i],dp[j+1]+((sum[i]-sum[j+1]+10)*p[j])

     1 #include<iostream>  
     2 #include<cstdio>  
     3 #include<cstring> 
     4 #include <cmath> 
     5 #include<stack>
     6 #include<vector>
     7 #include<map> 
     8 #include<set>
     9 #include<queue> 
    10 #include<algorithm>  
    11 using namespace std;
    12 
    13 int a[1005],dp[1005],sum[1005],p[1005];
    14 
    15 int main()
    16 {
    17     int cas,n;
    18     scanf("%d",&cas);
    19     while(cas--)
    20     {
    21         scanf("%d",&n);
    22         for(int i=1;i<=n;i++)
    23             scanf("%d %d",&a[i],&p[i]);
    24         sum[0]=sum[n+1]=0;
    25         for(int i=n;i>=1;i--)
    26             sum[i]=sum[i+1]+a[i];
    27         dp[n+1]=0;
    28         for(int i=1;i<=n;i++)
    29             dp[i]=99999999;
    30         for(int i=n;i>=1;i--)
    31             for(int j=n;j>=i;j--)
    32                 dp[i]=min(dp[i],dp[j+1]+(sum[i]-sum[j+1]+10)*p[j]);
    33         printf("%d
    ",dp[1]);        
    34     }
    35     return 0;
    36  } 
  • 相关阅读:
    python之map,filter
    python函数的闭包
    Hibernate查询对象的方法浅析
    底部浮动
    DataGrid-自定义排序
    DataGrid-1
    Alert
    2014-01-04 SQL练习
    proguard-gui 混淆代码简要笔记
    vim利用coc补全的配置过程
  • 原文地址:https://www.cnblogs.com/pter/p/5759910.html
Copyright © 2011-2022 走看看