期末忙碌的日子终于结束了。
题目很简单 完全背包
#include <iostream>
#include <stdio.h>
#include <string.h>
#include <algorithm>
#include <map>
using namespace std;
#define maxn 3005
#define ll long long
int dp[maxn];
int a[10];
int main()
{
int t;
scanf("%d",&t);
while(t--)
{
memset(dp,0x3f,sizeof(dp));
dp[0]=0;
for(int i=0;i<6;i++)
{
scanf("%d",&a[i]);
for(int j=0;j+a[i]<maxn;j++)
{
dp[j+a[i]]=min(dp[j]+1,dp[j+a[i]]);
}
}
for(int i=0;i<6;i++)
{
for(int j=maxn-1;j>a[i];j--)
{
dp[j-a[i]]=min(dp[j]+1,dp[j-a[i]]);
}
}
int ans=0;
double ret=0;
for(int i=1;i<=100;i++)
{
ret+=dp[i];
ans=max(ans,dp[i]);
}
printf("%.2f %d\n",ret/100,ans);
}
return 0;
}