hdu 1300 简单dp

来源:互联网 发布:什么是mysql事务 编辑:程序博客网 时间:2024/05/20 05:04

水的不能再水了,合理利用下前缀和

#include <iostream>#include <cstdio>#include <algorithm>#include <cstring>#define MAX 107using namespace std;int t,n;int a[MAX];int c[MAX];int dp[MAX];int sum[MAX];int main ( ){    scanf ( "%d" , &t );    while ( t-- )    {        scanf ( "%d" , &n );        sum[0] = 0;        for ( int i = 1 ; i <= n ; i++ )         {            scanf ( "%d%d" , &a[i] , &c[i] );            sum[i] = sum[i-1] + a[i];        }        memset ( dp , 0x3f , sizeof ( dp ) );        dp[0] = 0;        for ( int i = 1 ; i <= n ; i++ )            for ( int j = 0 ; j < i ; j++ )                dp[i] = min ( dp[i] , dp[j] + c[i]*(sum[i]-sum[j]+10) );        printf ( "%d\n" , dp[n] );    }}


0 0
原创粉丝点击