记录编号 597190 评测结果 AAAAAAAAA
题目名称 夏娜的菠萝包 最终得分 100
用户昵称 Gravatar黄天乐 是否通过 通过
代码语言 C++ 运行时间 0.455 s
提交时间 2024-11-25 17:12:15 内存使用 6.46 MiB
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
const int MAXN=(2<<14)+5;
int n,m;
int t[25],d[25],c[25];
int s[25];
int k[25],e[25];
int de[25],sum[25],last[25];
int f[MAXN][25];//fij 吃面包i第j天 
int b[25];
int w[25][25];
int ans;
int main(){
    freopen("shana.in","r",stdin);
    freopen("shana.out","w",stdout);
    while(1){
        memset(s,0,sizeof(s));
        memset(last,0x3f,sizeof(last));
        memset(de,0,sizeof(de));
        memset(sum,0,sizeof(sum));
        memset(f,0,sizeof(f));
        cin>>n;
        if(n==0)return 0;
        for(int i=1;i<=n;i++)cin>>t[i]>>d[i];
        b[0]=1;
        for(int i=1;i<=n;i++)b[i]=b[i-1]*2;
        cin>>m;
        for(int i=1;i<=m;i++){
            cin>>k[i]>>e[i];
            for(int j=1;j<=k[i];j++){
                int x;
                cin>>x;
                s[i]+=b[x-1];
                de[i]+=d[x];
                sum[i]+=t[x];
                last[i]=min(last[i],t[x]/d[x]+1);
            }
            sum[i]+=e[i];
        }
        for(int i=1;i<=m;i++){
            for(int j=1;j<=n;j++){
                if(j<=last[i])
                w[i][j]=sum[i]-de[i]*(j-1);
                else w[i][j]=-1061109567;
            }
        }
        for(int i=1;i<=b[n]-1;i++){
            for(int j=1;j<=n;j++){
                for(int x=1;x<=m;x++){
                    if((i&s[x])==s[x]){
                        int t=i-s[x];
                        f[i][j]=max(f[i][j],f[t][j-1]+w[x][j]);
                    }
                }
            }
        }
        int ans=0;
        for(int i=1;i<=b[n]-1;i++){
            for(int j=1;j<=n;j++)
            ans=max(ans,f[i][j]);
        }
        cout<<ans<<endl;
    }
    return 0;
}