POJ 1260 Pearls
解题思路:dp
dp方程:
//dp公式//opt[i]=min{opt[j]+[a[j+1]+....+a[i]+10]*p[i]}//Code#include<iostream>
using namespace std;
#define MAXN 1e9
int main()
{
int n,i,j,c,m,t,a[100],p[100],opt[101]={0};
scanf("%d", &n);
while (n--)
{
scanf("%d", &c);
for(i=0;i<c;i++)scanf("%d %d",&a[i], &p[i]);
for(i=0;i<c;opt[i+1]=m,i++)
for(m=MAXN,j=i,t=a[j]+10;j>=0;j--,t+=a[j])
if(m>opt[j]+t*p[i])m=opt[j]+t*p[i];
printf("%d\n",opt[c]);
}
return 0;
}