1 条题解

  • 0
    @ 2026-1-8 13:19:22
    #include<bits/stdc++.h>
    using namespace std;
    #define int long long
    const int N=110;
    int c[N],a[N][N],pd[N];
    bool bk[N];
    signed main()
    {
    	memset(bk,0,sizeof bk);
    	int n,m,k;scanf("%lld%lld%lld",&n,&m,&k);
    	for(int i=1;i<=m;i++)
    	{
    		scanf("%lld",&c[i]);
    		for(int j=1;j<=c[i];j++)
    			scanf("%lld",&a[i][j]);
    		char r;cin>>r;
    		if(r=='o')bk[i]=1;
    	}
    	int ans=0,res,sum;
    	for(int S=0;S<(1<<n);S++)
    	{
    		memset(pd,0,sizeof pd);
    		for(int i=1;i<=n;i++)
    			if(S&(1<<(i-1)))pd[i]=1;
    		res=1;
    		for(int i=1;i<=m;i++)
    		{
    			sum=0;
    			for(int j=1;j<=c[i];j++)
    				sum+=pd[a[i][j]];
    			if((sum>=k&&bk[i]==0)||(sum<k&&bk[i]==1))
    			{
    				res=0;
    				break;
    			}
    		}
    		ans+=res;
    	}
    	printf("%lld\n",ans);
    	return 0;
    }
    
    • 1

    信息

    ID
    1617
    时间
    2000ms
    内存
    1024MiB
    难度
    7
    标签
    递交数
    26
    已通过
    7
    上传者