Pku2441 Arrange the Bulls

说明

Farmer Johnson's Bulls love playing basketball very much. But none of them would like to play basketball with the other bulls because they believe that the others are all very weak. Farmer Johnson has N cows (we number the cows from 1 to N) and M barns (we number the barns from 1 to M), which is his bulls' basketball fields. However, his bulls are all very captious, they only like to play in some specific barns, and don’t want to share a barn with the others. 
So it is difficult for Farmer Johnson to arrange his bulls, he wants you to help him. Of course, find one solution is easy, but your task is to find how many solutions there are. 

You should know that a solution is a situation that every bull can play basketball in a barn he likes and no two bulls share a barn. 

Farmer Johnson的公牛队非常喜欢打篮球。 但他们中没有一个人愿意和其他公牛一起打篮球,因为他们认为其他公牛都很弱。 农民约翰逊有N头奶牛(我们将奶牛的数量从1到N)和M个谷仓(我们将谷仓从1到M编号),这是他的公牛篮球场。 然而,他的公牛都非常挑剔,他们只喜欢在一些特定的谷仓玩耍,并且不想与其他人共用一个谷仓。
所以Farmer Johnson很难安排他的公牛,他希望你能帮助他。 当然,找到一个解决方案很容易,但您的任务是找到有多少解决方案。
你应该知道一个解决方案是每个公牛都可以在他喜欢的谷仓里打篮球并且没有两头公牛共用一个谷仓。

输入格式

In the first line of input contains two integers N and M (1 <= N <= 20, 1 <= M <= 20). Then come N lines. The i-th line first contains an integer P (1 <= P <= M) referring to the number of barns cow i likes to play in. Then follow P integers, which give the number of there P barns. 

在输入的第一行包含两个整数N和M(1 <= N <= 20,1 <= M <= 20)。 然后来N行。 第i行首先包含一个整数P(1 <= P <= M),指的是我喜欢玩的谷仓的数量。然后跟随P整数,它给出了P谷仓的数量。

输出格式

Print a single integer in a line, which is the number of solutions. 

在一行中打印一个整数,即解决方案的数量。

样例

输入数据 1

3 4     //三头牛,四个Romm
2 1 4   //一号牛喜欢两个房间, 分别为1号,4号房间,下面类似
2 1 3
2 2 4

Copy

输出数据 1

4
//有四种方式将这三头牛都安排到一个它们喜欢的房间

#include<bits/stdc++.h>
using namespace std;
long long n,f[27][1000201],a[1010][1022],p,m[1001],as;
char cc;
int main(){
    cin>>n>>p;
    for(int i=1;i<=n;i++){
        cin>>m[i];
        for(int j=1;j<=m[i];j++){
            cin>>a[i][j];
        }
    }
    f[0][0]=1;
    for(int i=1;i<=n;i++){
        for(int j=0;j<=(1<<p);j++){
            if(f[i-1][j]>=1){
                for(int k=1;k<=m[i];k++){
                    if((j&(1<<a[i][k]-1))==0){
                        f[i][j|(1<<a[i][k]-1)]+=f[i-1][j];
                    }
                }
            }
        }
    }
    for(int i=0;i<=(1<<p);i++){
        as+=f[n][i];
    }
    cout<<as;

  • 7
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: PKU VehicleID数据集是由北京大学智能交通与多媒体实验室提供的一个用于车辆识别的图像数据库。该数据集包含了车辆在不同环境、不同拍摄条件下的图像,旨在用于车辆相关研究的数据训练和测试。 PKU VehicleID数据集收集了超过8万辆车的图像,涵盖了2000多个车型和16000多个车例。这些图像是在不同的拍摄条件下捕捉到的,包括不同的光照、天气、角度和距离。这使得该数据集在车辆识别和相关研究领域具有较高的多样性和可用性。 PKU VehicleID数据集不仅提供了车辆图像,还包含了车辆的标注信息,如车辆类型、颜色、品牌等。这些标注信息为研究者提供了更多的可用数据,可以辅助他们进行车辆特征识别、车辆分类等相关研究。 PKU VehicleID数据集可以广泛应用于车辆识别、车辆检测、交通监控等领域的研究和实践中。通过利用该数据集,研究者可以进行车辆模型的建立与识别、车辆行为的分析与预测等工作,从而为智能交通和城市管理提供更好的技术支持和解决方案。 综上所述,PKU VehicleID数据集是一个丰富的车辆图像数据库,它提供了大量的车辆图像和标注信息,为车辆识别和相关研究领域的研究者提供了重要的资源和工具。通过该数据集的应用,我们可以更好地理解和研究车辆特征识别、车辆分类等问题,为智能交通和城市管理带来更多的创新和进步。 ### 回答2: PKU VehicleID数据集是由北京大学人工智能与自动化研究所于2016年发布的一个车辆检测和识别的数据集。这个数据集主要包含了来自北京市道路监控系统的车辆图像和相关的车辆属性信息。 PKU VehicleID数据集的特点主要有以下几点。首先,该数据集包含了非常大量的车辆图像,总计约50万张,涵盖了丰富的场景和车型样本。其次,这些图像都是以野外真实道路监控视频截取得到的,具有较高的真实性和复杂性。此外,数据集中的每一辆车都被分配了一个唯一的ID号码,用于标识和跟踪车辆。最后,PKU VehicleID数据集还提供了诸如车辆类型、颜色、品牌等属性信息,方便进行车辆属性识别和分类任务。 PKU VehicleID数据集在车辆检测、跟踪和识别领域有着广泛的应用价值。通过利用这个数据集,可以开展车辆检测算法的研究和性能评估。同时,也可以进行车辆属性识别、车型分类等应用任务的研究。这个数据集的发布对于提升车辆智能监控和交通管理系统的性能具有重要意义。此外,PKU VehicleID数据集还可以为自动驾驶、交通安全和交通流量分析等领域的研究提供有价值的实验数据基础。总之,PKU VehicleID数据集是一个丰富而有用的资源,为车辆相关研究提供了有力的支持。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值