记录编号 597271 评测结果 AAAAAAAAA
题目名称 夏娜的菠萝包 最终得分 100
用户昵称 Gravatar孤独的氢离子 是否通过 通过
代码语言 C++ 运行时间 0.490 s
提交时间 2024-11-25 21:31:17 内存使用 6.46 MiB
显示代码纯文本
#include <bits/stdc++.h>
using namespace std;
const int MAXN=(2<<14)+5;
int a[25][2];//0存初始值1存衰减
int k[25],e[25],chu[25],sh[25],t[25],last[25];
int w[25][25];
int p[25];
int f[MAXN][25];
int main()
{
	freopen("shana.in","r",stdin);
	freopen("shana.out","w",stdout);
	p[0]=1;
	for(int i=1;i<=21;i++)
	{
		p[i]=p[i-1]*2;
	}
	while(1)
	{
		memset(a,0,sizeof(a));
		memset(f,0,sizeof(f));
		memset(chu,0,sizeof(chu));
		memset(sh,0,sizeof(sh));
		memset(last,MAXN,sizeof(last));
		memset(t,0,sizeof(t));
		memset(w,0,sizeof(w));
		int n;
		cin>>n;
		if(n==0) return 0;
		for(int i=1;i<=n;i++)
		{
			cin>>a[i][0]>>a[i][1];
		}
		
		int m;
		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;
				chu[i]=chu[i]+a[x][0];
				sh[i]=sh[i]+a[x][1];
				t[i]=t[i]+p[x-1];
				last[i]=min(last[i],a[x][0]/a[x][1]+1);
			//	cout<<a[x][0]<<" "<<a[x][1]<<"[]"<<a[x][0]/a[x][1]+1;
			}
			chu[i]=chu[i]+e[i];
			w[i][1]=chu[i];
		}
		for(int i=1;i<=m;i++)
	    {
	    		
	    	for(int j=2;j<=n;j++)
	    	{
				if(j<=last[i])
				w[i][j]=w[i][j-1]-sh[i];
	    	    else 
	    	    w[i][j]=-1061109567;
			}
	    }
		for(int i=1;i<=p[n]-1;i++)
		    for(int j=1;j<=n;j++)
		        for(int x=1;x<=m;x++)
		        {
		        	if((i&t[x])==t[x])
		        	{
		        		int r=i-t[x];
		        		f[i][j]=max(f[i][j],f[r][j-1]+w[x][j]);
		        	
		        	}
		        }
		int ans=0;
        for(int i=1;i<=p[n]-1;i++)
		{
            for(int j=1;j<=n;j++)
            ans=max(ans,f[i][j]);
        }
        cout<<ans<<endl;
	}
	
	return 0;
}