666
2024-07-28 16:36:08
发布于:浙江
#include<bits/stdc++.h>
using namespace std;
int v[100005],w[100005],dp[100005],dis[15]= {6,2,5,5,4,5,6,3,7,6};
int main() {
int t;
cin>>t;
for(int l=1; l<=t; l++) {
int c,n,a;
cin>>n>>c;
for(int i=1;i<=c;i++){
dp[i]=0;
}
for(int i=1; i<=n; i++) {
cin>>a;
w[i]=0;
while(a) {
w[i]+=dis[a%10];
a/=10;
}
}
for(int i=1; i<=n; i++) {
cin>>v[i];
}
for(int i=1;i<=n;i++){
for(int j=w[i];j<=c;j++){
dp[j]=max(dp[j],dp[j-w[i]]+v[i]);
}
}
cout<<dp[c]<<endl;
}
return 0;
}
这里空空如也
有帮助,赞一个