hdu 1300

来源:互联网 发布:知乎 回复集锦 编辑:程序博客网 时间:2024/05/21 22:56
#include <iostream>#include <cstdio>#include <cstdlib>#include <algorithm>#include <vector>#include <map>#include <set>#include <string>#include <cstring>#include <list>#include <queue>#include <stack>#include <cmath>using namespace std;#define PF(x) (scanf("%d",&x))#define PT(x,y) (scanf("%d%d",&x,&y))#define PR(x) (printf("%d\n",x))#define PRT(x,y)(printf("%d %d\n",x,y))#define PB(x)(scanf("%I64d",&x))#define PRB(x)(printf("%I64d\n",(x)))typedef __int64 LL;#define N 105#define M 105#define Mod 1000#define Inf 0x7fffffffint a[N],p[N],sum[N],sp[N];int dp[N];void init(){int test;PF(test);while(test--){       int n;   PF(n);   int var = 0,sv=0;   for(int i=0;i<n;i++)   {   PT(a[i],p[i]);   sp[i] = sv+a[i];   sv = sp[i];   sum[i] = (sp[i]+10)*p[i];   }   for(int i=0;i<n;i++)   {   if(i)   {   dp[i] = sum[i];   for(int j=0;j<=i;j++)   if(dp[i]>dp[j]+(sp[i]-sp[j]+10)*p[i])   dp[i] = dp[j]+(sp[i]-sp[j]+10)*p[i];   }   else   {   dp[i] = (a[i]+10)*p[i];   }   }   PR(dp[n-1]);}return ;}int main(){init();return 0;}

原创粉丝点击