10130 - SuperSale

2014-11-24 03:01:56 · 作者: · 浏览: 7

[cpp]
描述:水题不解释
#include
#include
int t,n,m,sum,p,q;
int arr[1010][2],w[110],v[50010][2];
int main()
{
// freopen("a.txt","r",stdin);
scanf("%d",&t);
while(t--)
{
scanf("%d",&n);
for(int i=0; i scanf("%d",&m);
sum=0;
for(int i=0; i {
scanf("%d",&w[i]);
if(w[i]>sum) sum=w[i];
}
memset(v,0,sizeof(v));
v[0][0]=1;
for(int i=0; i for(int j=sum-1; j>=0; j--) if(v[j][0])
{
p=j+arr[i][1];
q=v[j][1]+arr[i][0];
if(p<=sum&&q>v[p][1])
{
v[p][0]=1;
v[p][1]=q;
}
}
p=0;
for(int i=0; i {
q=0;
for(int j=w[i]; j>=0; j--)
if(v[j][0]&&v[j][1]>q) q=v[j][1];
p+=q;
}
printf("%d\n",p);
}
return 0;
}

描述:水题不解释
#include
#include
int t,n,m,sum,p,q;
int arr[1010][2],w[110],v[50010][2];
int main()
{
// freopen("a.txt","r",stdin);
scanf("%d",&t);
while(t--)
{
scanf("%d",&n);
for(int i=0; i scanf("%d",&m);
sum=0;
for(int i=0; i {
scanf("%d",&w[i]);
if(w[i]>sum) sum=w[i];
}
memset(v,0,sizeof(v));
v[0][0]=1;
for(int i=0; i for(int j=sum-1; j>=0; j--) if(v[j][0])
{
p=j+arr[i][1];
q=v[j][1]+arr[i][0];
if(p<=sum&&q>v[p][1])
{
v[p][0]=1;
v[p][1]=q;
}
}
p=0;
for(int i=0; i {
q=0;
for(int j=w[i]; j>=0; j--)
if(v[j][0]&&v[j][1]>q) q=v[j][1];
p+=q;
}
printf("%d\n",p);
}
return 0;
}